ブログ

Salesforceの数式項目を使って自動計算を最適化する方法|活用イメージとともに分かりやすく解説

#Salesforce #設定 #数式項目 #自動計算

積極採用中
セミナー情報

業務設計で「計算結果を入力させたくない」「入力ミスをゼロにしたい」と思ったとき、まず候補に挙がるのが数式項目です。
数式項目は、他の項目値をもとに値を自動計算して表示できるため、運用ルールの統一・データ品質向上を一気に進められます。

一方で、空白の扱い・参照のまたぎ方・数式の肥大化などを考慮せずに作ると、後から修正が大変になります。

本記事ではSalesforceにおける数式項目の設定手順と最適化のポイントをまとめます。

Salesforceの数式項目とは:自動計算が反映される仕組み


数式とは、他の項目・式・値から値を導き、項目値を自動的に計算する仕組みです。
数式項目では、その計算結果を項目の値として表示できます。
数式と聞くと、まず数字の計算(金額など)が思い浮かびますが、数式項目は、多様なデータ型を設定することができます。

テキスト型を連結したり、設定した条件を元に表示する値を変更することも可能です。

数式の戻り値データ型を指定する画面
(数式の戻り値データ型を指定する画面)

計算タイミング:保存ではなく「表示・参照時」に評価される

数式項目は、レコードを保存した瞬間に値が保存されるのではなく、項目が表示またはアクセスされるタイミングで計算されます。

画面表示はもちろん、APIでSELECTするときにも計算されます。
そのため、元となる項目が更新されれば、数式の結果も常に最新になり、更新の作業が不要となります。
(参考公式ヘルプページ:数式項目の計算タイミングについて

数式項目でできること:計算・変換・条件分岐・関連レコード参照

数式項目にはいろいろな使い方があります。
ここで代表的な使用例を把握しておきましょう。

  • 数値計算(合計、値引き後金額、率の算出)
  • 条件分岐(ステータスに応じて値を変える)
  • 文字列変換(連結、整形、ハイパーリンク生成)
  • 日付計算(経過日数、期限、営業日換算の一部)
  • 親レコード参照(クロスオブジェクト数式で親の項目を表示)

数式項目の設定手順:最短でつまずかない作り方


それでは、実際の数式項目の作成手順について紹介していきます。
数式項目の作成は、通常のカスタム項目作成と同じ流れで進みます。

手順1:オブジェクトと「戻り値のデータ型」を決める

最初に決めるべきは「どのオブジェクトに置くか」と「数式の戻り値(数値/通貨/テキスト/チェックボックスなど)」です。
戻り値がレポート集計や条件判定のしやすさを左右します。

  1. 「設定」の「オブジェクトマネージャー」から数式項目を作成するオブジェクトを選択
  2. 「項目とリレーション」を選択し、新規項目を作成
  3. データ型から「数式」を選択し、「次へ」を押下
  4. 新規項目_データ型設定画面
    (新規項目_データ型設定画面)

  5. 必要事項を入力の上、数式項目の戻り値のデータ型を選択し、「次へ」を押下
  6. 数式項目_戻り値データ型設定画面
    (数式項目_戻り値データ型設定画面)

手順2:数式エディターで作る(高度な数式がおすすめ)

  1. 「項目の挿入」、「演算子の挿入」、「関数」などを使用し、数式を設定
  2. 数式エディターで作る
    ※公式ではツールが揃っている高度な数式エディターの利用が推奨されています。
    (参考Trailhead:数式項目の使用

  3. 「構文を確認」を押下し、作成した数式に問題がないか確認
  4. 数式が正しく設定されている場合の表示
    数式が正しく設定されている場合の表示

    数式が正しく設定されていない場合の表示
    数式が正しく設定されていない場合の表示

手順3:「空白項目の処理」を選ぶ(0扱い or 空白扱い)

次に元となる項目の値が空白の際の処理方法を選択します。
処理方法は以下の2つです。

  • 空白項目を0として処理 → 空白を0として計算(金額の計算など)
  • 空白項目を空白として処理 → 空白は空白のままにしたい(テキストの連結など)

手順4:項目レベルセキュリティとページレイアウトを設定する

最後に項目を参照または編集できるユーザーのプロファイルとページレイアウトを選択し、「保存」を押下すれば完了です。

ページレイアウト設定画面
(ページレイアウト設定画面)

活用イメージ:業務設計で効く自動計算のパターン


使用方法が多くある数式項目が実際にどのように使われているのか、より具体的に見ていきましょう。

パターン1:金額計算(数量×単価−値引き)

金額に関わる項目に人間が打ち込みミスを起こすと、取り返しのつかない事態になります。
見積・受注などで「計算結果を入力させない」だけで、ミスが激減します。

(例)値引き後の金額
「数量」、「単価」、「値引き」によって、値が設定される数式を設定
(「数量」、「単価」、「値引き」によって、値が設定される数式を設定)

パターン2:条件分岐でラベルを出す

元の項目の値により、数式項目の値が設定されるようにします。

(例)受注確度ラベル
「フェーズ」によって、値が設定される数式を設定
(「フェーズ」によって、値が設定される数式を設定)

「フェーズ」が”Closed Won”のため、数式項目「受注確度ラベル」は”受注”となっている
(「フェーズ」が”Closed Won”のため、数式項目「受注確度ラベル」は”受注”となっている)

パターン3:日付計算(経過日数・期限)

経過日数や期限などの日付の計算も数式項目で行うことができます。

(例)完了経過日数
「完了予定日」からの経過日数を表示する数式を設定
(「完了予定日」からの経過日数を表示する数式を設定)

「完了予定日」からの経過日数が表示されている
(「完了予定日」からの経過日数が表示されている)

日付、日付/時間数式項目の注意点

日付、日付/時間型の項目を数式で使用する際はいくつか注意点があります。

  • タイムゾーンの影響
  • 日付、日付/時間型の計算は、ユーザーのタイムゾーンで行われます。

  • 型の違い
  • 日付型と日付/時間型は互換性がなく、計算する際はDATEVALUE関数を使用して、日付/時間型を日付型に変換する必要があります。

さらに詳しく知りたい方は下記参考ページをご覧ください。
(参考公式ヘルプページ:数式で日付、日時、時刻の値を使用する

パターン4:クロスオブジェクト数式で「親の情報」を引く

子レコード側で親の項目を表示したいとき、クロスオブジェクト数式が便利です。
クロスオブジェクト数式は、数式設定の項目の挿入の際に関連する親オブジェクトの項目を選択することで設定できます。

リードオブジェクトから親オブジェクトであるユーザーオブジェクトの項目を選択
(リードオブジェクトから親オブジェクトであるユーザーオブジェクトの項目を選択)

ただ、クロスオブジェクト数式は、オブジェクトあたり最大10個の一意のリレーションなどの制限があるため注意が必要です。
(参考公式ヘルプページ:クロスオブジェクト数式の作成のヒント

自動計算を最適化する設計ポイント:複雑化と性能劣化を防ぐ


数式項目はとても便利な機能ですが、複雑な数式にしてしまうと運用や管理が大変になり、ロジックの複雑化や性能劣化につながります。
そこで最後に、数式項目の複雑化と性能劣化を防ぐポイントについて押さえておきましょう。

ポイント1:空白の扱いは仕様として文章化する

“手順3:「空白項目の処理」を選ぶ” では、「空白をどう扱うか」について説明しました。
「空白をどう扱うか」は運用上のルールによって異なります。
空白項目の処理の設定をする際はその理由まで文章化することで、設計から時間が経過した際や担当者が変わった際にも迅速に運用や管理を行うことができます。

ポイント2:参照のまたぎすぎを防ぐ(上限と整理のコツ)

数式項目では、1つのオブジェクトに最大15個の参照関係(スパニングリレーションシップ)を持つことができます。
参照数の上限に近づくと、追加開発が難しくなります。
そのため、クロスオブジェクト数式を作成する際には、不要な参照を減らす、共通の親参照を整理するなど、オブジェクト設計の段階で“辿り方”を揃えるのが有効です。
(参考公式ヘルプページ:新しい数式の作成時のエラー

ポイント3:数式の肥大化を防ぐ(分割・可読性)

数式が長くなるほど、保守・改修の事故が増えます。
改行、インデント、関数を行ごとに分けるなど可読性に注意しましょう。
また、数式項目はコンパイル時に 15,000 バイト以下である必要があります。
数式が長くなり、複雑化を免れない場合は、複数の数式項目に分割し、それらを参照する形で管理することも考慮しましょう。
※コンパイルサイズは、参照するすべての項目、値、数式を含む、数式のサイズ (バイト数)
(参考公式ヘルプページ:数式のベストプラクティス
(参考公式ヘルプページ:数式項目の制限および制約

まとめ

数式項目は、入力ミスを防ぎながら自動計算を実現でき、運用ルールの統一とデータ品質向上に効果的です。

一方で、空白の扱い・参照のまたぎ方・数式の肥大化を考慮せずに作ると、後から修正や追加開発が難しくなるため、設計意図を文章で残しつつシンプルに管理することが重要です。

まずは、金額計算や条件分岐など小さな用途から導入し、運用しながら最適な形へ調整していきましょう。

<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら

また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!

医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ