Salesforceの選択リスト はじめての運用ガイド🔰
1. はじめに ~選択リストとは?~
選択リスト項目は、Salesforce 上で事前に定義した値の中からレコードごとに選択する項目です。
事前に定義された値から選択する項目なので、データの一貫性が保たれます。
今回はそんなSalesforceの 選択リスト(Picklist) について、管理者や実務担当者が知っておくべき機能をまとめました。
パッと見て理解できる内容+実務でハマりやすい落とし穴も紹介します💡
- 表示ラベル:画面に表示される文字列
- API 参照名:システム内部で処理される名前(データローダや連携で使用)

2. 選択リストの種類と使い分け
Salesforce の選択リストは、2種類の値セットと項目の選択タイプ の組み合わせで構成されます。
2-1.値セットの種類
-
通常の選択リスト:項目ごとに独立して値を管理
- 項目の編集画面から、「グローバル値セット」に昇格することができます。
-
グローバル選択リスト:複数の項目で同じ値セットを共有で管理
2-2.項目の選択タイプ
- 単一選択:1レコードにつき1つの値のみ選択可能
-
複数選択:1レコードで複数の値を同時に選択可能
- データローダで投入する場合は値をセミコロン{;}区切りにする必要があります。
- レポートで検索条件の際も、選択肢を選択するのではなくテキスト入力です。
2-3.選択リスト値の使い分けの目安
- 複数の項目で同じ値セットを使いたい場合 → グローバル選択リスト
- 1レコードで複数の値を選択したい場合 → 複数選択リスト
- それ以外の用途 → 通常の選択リスト という使い分けになります。
2-4.補足
- グローバル選択リストの値は、項目編集画面からではなく「選択リスト値セット」から作成します。
[設定>オブジェクトおよび項目>選択リスト値セット] - グローバル選択リストの時は、自動的に「値セットで定義された値に選択リストを制限します」がTrueになり、Falseにすることはできません。
「値セットで定義された値に選択リストを制限します」の設定をするとどうなるのでしょうか?
他にどんな制御があるのでしょうか?
3. 選択リスト項目の制限と制御
3-1. 値セットの制限
上のセクションで出てきた「値セットで定義された値に選択リストを制限します」をTrueにすると、登録できる値は有効な値のみに制限します。
データローダやフローなど、API経由で値が入る場合もこちらの制限は働きます。
一方、この値がFalseの時は、データローダや連携などで有効でない値もデータ投入が可能です。
その際、Salesforce 上では “無効な値” として保持されます。
⚠️標準項目の例外
- 商談フェーズ(StageName)や Case Status(ケースステータス)など、標準の選択リスト項目は、この制限を設定することができません。(非制限選択リスト扱いです。)
→ 標準項目で値の制限ができない場合は、運用側で定期的にデータチェックを行うなどの対応が必要です。
3-2. 連動項目による制御
[制御項目]の値に応じて、[連動項目]の選択肢を絞り込むことができる制御です。

-
連動関係を設定しておくことで、会社として定義した分類ルールを反映できます。
判断が分かれてしまう可能性がある項目でも、ユーザは規定に沿った選択肢のみから選べるため、
入力者による解釈のブレを防ぐことができます。 -
他にも、連動項目の選択肢が大量にある場合、制御項目に応じた適切な選択肢から選ぶことができ、
ユーザーの選ぶ手間を軽減することができます。
- レコードタイプにも、連動項目と似た制御を設定できます。
レコードタイプの選択リスト制限は「ユーザに表示しない値を隠す」制御で、
連動項目は “制御項目の値に応じて候補を変える” 動的制御のイメージです。
公式ヘルプ
4. 選択リストの落とし穴(実務であるかもしれない失敗談)
ここからは、実際に現場でハマりやすい例を「落とし穴形式」で紹介します。
データ投入時の挙動を中心にまとめています。
落とし穴①:値セット制限 OFF で無効値が投入される
症状:データはエラーもなく登録できるが、レポートでは検索条件から除外される
原因:値セット制限が OFF のままデータローダや連携で投入した
▷ 例えば、"~"[全角波ダッシュ]が"〜"[全角チルダ]で投入された時、一見問題なくデータが投入されているように見えますが、有効な値と異なるテキストの場合は、無効な値に追加されてしまいます。
▷ Salesforce は、制限が OFF の場合、入力された文字列が項目に存在しないと「無効値」として新たに値を自動生成する仕様になっています。
落とし穴②:API参照名と表示ラベルの混同
症状:選択リスト値を投入しても値が反映されない or 無効値が投入される
原因:データローダでデータを投入する時、表示ラベルで選択リスト値を投入した
▷ Salesforce では選択リスト値を「表示ラベル」ではなく「API参照名」で判断します。
もし表示ラベルは日本語、API参照名は英語で設定している場合はAPI参照名で値を指定する必要があります。
⚠️:項目の「フィールド API 名」ではなく、選択リスト値それぞれに設定されている
「選択リスト値の API 参照名」の方です。
落とし穴③:連動項目の設定漏れ
症状:追加したはずの選択リスト値がレコードに反映されない
原因:連動関係のある項目のリスト値を追加した後、別途連動関係の修正をしなかった
▷ 制御項目を持つ選択リスト値は、追加した時点では「除外される値」として登録される。
まとめ
選択リストは値をシステム的に管理しやすく、分析にもとても扱いやすい有用な項目ですが、
種類・制限・連動・データ投入時の挙動 を理解しておくことが大切です🍀
データ投入時には API参照名を使用し、文字コード、制限や制御の有無 を必ず確認しましょう!!
Discussion