数式での選択リスト値と複数選択リスト値の操作のヒント
選択リストおよび複数選択リストから値を参照する数式の作成に関するヒントを紹介します。さらに、Boolean チェックボックス項目の操作と一般的なエラーの処理に関するガイダンスも確認できます。
必要なエディション
| 使用可能なインターフェース: Lightning Experience と Salesforce Classic の両方 |
| 使用可能なエディション: すべてのエディション |
Salesforce では、他のデータ型とは異なる方法で選択リスト値を保存するため、数式でこれらの値を使用するには特殊な関数が必要です。ほとんどの数式関数または標準の比較演算子 (= や != など) を使用すると、エラーが発生します。
選択リスト
数式で選択リスト値を参照するには、次の 3 つの関数のみを使用します。
- ISPICKVAL: 選択リスト項目に特定の値が含まれるかどうかを決定します。
- 使用事例: [ケース状況] 選択リストが
Escalatedの場合にアラートを表示する入力規則数式を作成します。
- 使用事例: [ケース状況] 選択リストが
- CASE: 選択リストの各オプションに特定の値を割り当てます。
- 使用事例: [優先度] 選択リストのすべてのオプションに数値を割り当てて [期日] 数式項目を計算します。
Highは 1 日、Lowは 7 日に変換されます。
- 使用事例: [優先度] 選択リストのすべてのオプションに数値を割り当てて [期日] 数式項目を計算します。
- TEXT: 選択リストで選択した値を標準テキストに変換します。text は値の API 参照名です。選択リスト値をテキストに変換したら、他の項目と組み合わせることができます。フロー数式リソース、数式項目、入力規則、ワークフロー項目自動更新でのみ使用できます。
- 使用事例:
Region選択リスト値と [年] 項目を組み合わせて、一意のレコード ID 数式項目を作成します。
- 使用事例:
これらの関数の構文に関する指針、ヒント、例については、ISPICKVAL、CASE、および TEXT を参照してください。
複数選択リスト
数式で複数選択リスト値を参照するには、次の関数のみを使用します。
- INCLUDES: 複数選択リストに特定の値が含まれているかどうかを確認します (他の値も選択されている場合も同様)。
- 使用事例: ユーザーが [関心] 選択リストで [
Golf] オプションを選択したときにチェックボックスの戻り値の型 (VIP Member と呼ばれる) を自動的に設定する数式フィールドを作成します。
- 使用事例: ユーザーが [関心] 選択リストで [
- ISBLANK: ユーザーが選択リストでオプションを選択していないかどうかを確認します。
- 使用事例: 複数選択リスト項目が空の場合にユーザーがレコードを保存できないようにする入力規則数式を作成します。
- ISCHANGED: 現在の編集セッション中にユーザーが選択リスト選択のリストを変更したかどうかを確認します。割り当てルール、入力規則、ワークフロー項目自動更新、および評価条件を使用するワークフロールールでのみ使用できます。Evaluate the rule when a record is: created and every it is edited. (レコードが次の場合にルールを評価: 作成されたとき、および編集されるたび)。
- 使用事例: 取引先が有効になっている場合にユーザーが [承認済みベンダー] 選択リストの選択内容を変更できないようにする入力規則数式を作成します。
- PRIORVALUE: ユーザーの変更前の選択リストの選択内容を確認します。割り当てルール、入力規則、ワークフロー項目自動更新、および評価条件を使用するワークフロールールでのみ使用できます。Evaluate the rule when a record is: created and every it is edited. (レコードが次の場合にルールを評価: 作成されたとき、および編集されるたび)。
- 使用事例: ユーザーが [タグ] 選択リストで [
Critical] オプションを選択解除した場合に理由の入力を要求する入力規則数式を作成します。
- 使用事例: ユーザーが [タグ] 選択リストで [
これらの関数は数式の複数選択リスト値にも適用されますが、いくつかの考慮事項があります。
- CONTAINS: 複数選択リストで選択した値内の任意の場所に特定のテキスト文字列が含まれているかどうかを確認します。アクションを実行するための [条件に一致] 条件を使用するプロセスビルダーまたはフロー数式でのみ機能します。代わりに INCLUDES を使用することをお勧めします。
- 使用事例: [関心] 選択リストのユーザー選択にテキスト
Golfが含まれている場合にアクションをトリガーするプロセスビルダー数式を作成します。
この関数は、部分的な単語に一致します。この例では、ユーザーが [Mini-Golf (ミニゴルフ)] を選択した場合、その値に「Golf」というテキストが含まれているため、数式によってアクションがトリガーされます。短い単語には注意してください。「Ten」を検索すると、「Tennis」と「Tent」の両方が検索されます。
- 使用事例: [関心] 選択リストのユーザー選択にテキスト
- ISNULL: 項目が空かどうかを確認します。この関数は古く、空のテキスト項目や選択リストを適切に処理しません。新しい数式には ISBLANK を使用します。
これらの関数の構文に関する指針とヒントおよび例については、「INCLUDES」、「ISBLANK」、「ISCHANGED」、「PRIORVALUE」、「CONTAINS」、および「ISNULL」を参照してください。
標準チェックボックス項目 (Boolean)
一部の標準オブジェクトには、レコードの状況をまとめた特殊なチェックボックス項目 (boolean) が含まれます。例:ケースに対するIsEscalated、商談に対するIsWonとIsClosed、ToDoと行動に対するIsClosed、リードに対するIsConverted。
これらの項目は選択リストではありません。これらは状況に関連しますが、実際には TRUE または FALSE の値を保持するチェックボックスです。これらのチェックボックスはシステムで管理されます。ISPICKVAL など、選択リストで必要とされる特殊な関数を使用せずに、これらの項目を数式で直接使用できます。たとえば、完了した商談を識別するには、次のように使用します。
IsClosed = TRUE状況に基づいて数式を作成する場合、IsWon などの標準チェックボックス項目で必要な処理が実行されているかどうかを確認します。多くの場合、StageName などの選択リスト項目に対して複雑なロジックステートメントを記述するよりも簡単です。
数式で選択リスト値を参照する際の一般的なエラーのトラブルシューティング
- エラー: 選択リスト フィールドは特定の関数でのみサポートされています
- 考えられる原因: 選択リストフィールドをテキストと直接比較しようとしました (
Status = "Open"など)。または、選択リスト用ではない算術関数またはテキスト関数を使用しました。 - ソリューション: 直接比較を ISPICKVAL に置き換えます。
- 誤:
Status__c = “Open" - 正:
ISPICKVAL( Status__c, "Open" )
- 誤:
- 考えられる原因: 選択リストフィールドをテキストと直接比較しようとしました (
- エラー: 関数「ISPICKVAL()」のパラメータ数が正しくないか、一般的な構文エラーです。
- 考えられる原因: 括弧内に等号 (=) が含まれていました。
- 解決策: 項目と値をカンマで区切ります。
- 誤:
ISPICKVAL( Status__c = "Open" ) - 正:
ISPICKVAL( Status__c, "Open" )
- 誤:
- エラー: 数式は有効ですが機能しません (TRUE であるべき場合に FALSE を返します)
- 考えられる原因: API 参照名 (システムで使用される名前) ではなく、選択リストの表示ラベル (ユーザーに表示される名前) を使用していました。多くの場合、選択リストの表示ラベルは基盤となる API 参照名とは異なります。
- 解決策: フィールド設定の選択リスト値を確認し、数式で正確な API 参照名が使用されていることを確認します (たとえば、[処理中(In Progress)] ではなく [In_Progress] など)。
詳細情報を取得
- 完全な関数リファレンスライブラリの『 Formula Operators and Functions by Context 』 (コンテキスト別の演算子と関数の数式)。各関数の構文と例。
- ビジネスの使用事例別に整理された複雑な数式の例の高度な数式項目の例。
- 選択リスト項目データを使用する多くの入力規則の例を含む、入力規則の例。

