※こちらは過去に公開していたブログからの移行記事です。
Excelではお馴染みの VLOOKUP関数ですが、Salesforceでは入力規則でのみ、かつカスタムオブジェクトの値を検索するときにしか使用できません。
VLOOKUP
説明: Excel の VLOOKUP() 関数と同様に、カスタムオブジェクトに関連する値を検索し、その値を返します。
使用方法: VLOOKUP(field_to_return, field_on_lookup_object, lookup_value)。field_to_return には返す値が含まれている項目を、field_on_lookup_object には一致させる値が含まれている関連オブジェクト上の項目を、また lookup_value には一致させる値を指定します。
ヒント:
・field_to_return のデータ型は、自動採番、積み上げ集計、参照関係、主従関係、チェックボックス、日付、日付/時間、メール、数値、パーセント、電話番号、テキスト、テキストエリア、または URL にする必要があります。
・field_on_lookup_object は、カスタムオブジェクトの [レコード名] 項目にする必要があります。
・field_on_lookup_object と lookup_value は、同じデータ型にする必要があります。
・一致するレコードが複数ある場合は、最初のレコードの値が返されます。
・返される値は、カスタムオブジェクトのものであることが必要です。
・この関数で参照されるカスタム項目またはカスタムオブジェクトは削除できません。
・この関数は、入力規則でのみ使用できます。
◇ Salesforce >ヘルプ > 数式の演算子と関数 I – Z >VLOOKUP今回はその数少ない VLOOKUP関数の使用例についてです。
やりたいこと
・カスタムオブジェクトのレコードの名前(Name)を重複しないようにしたい。
・レコード名はテキスト項目で、手動で入力することになっている。
対処法
該当のカスタムオブジェクトで、以下のような入力規則を作成。
AND(
VLOOKUP( $ObjectType.オブジェクトAPI.Fields.Name ,
$ObjectType.オブジェクトAPI.Fields.Name , Name ) = Name,
OR(ISNEW(), ISCHANGED(Name))
)※$ObjectType.オブジェクトAPI.Fields.Name の部分は、「項目の挿入」をクリックして、一番初めに「 $ObjectType」を選択し、該当のカスタムオブジェクト、レコード名と選択していきます。
重複管理とどっちがいい?
重複管理では、どの項目を比較して一致とするのかや、一致レコードがあったときのアクション(アラートを出すのか、レコードを作成させないのか)を選択できます。
シンプルに「カスタムオブジェクトでレコード名の重複は作らせない」ということであれば、入力規則のほうが気軽でいいかもしれませんね。
{{i18n("articles.view.premium")}}