Salesforceの数式項目とは?関数や作成方法など制限事項を踏まえて解説

この記事でわかること
- 数式項目の基本知識や役割
- 具体的な数式項目の設定方法
- 数式項目でエラーが起きた際の対処方法

執筆者 代表取締役社長 / CEO 杉山元紀
Salesforceを管理されているご担当者様であれば、様々な種類のカスタム項目を作成し、テキストや数値といったデータを効率的に蓄積するための運用をされているかと思います。
では、カスタム項目のデータ型の一つである「数式項目」を活用されているでしょうか?
数式項目は、Salesforce上の複雑な計算や他データの項目に応じた値を返すなど、活用方法次第では、あらゆる場面でユーザーの業務効率化を図ることができます。
そこで本記事では、数式項目の基本的な概念から具体的な作成方法、利用できる関数、そして注意すべき制限事項について詳しく解説します。
数式項目はSalesforceのカスタマイズをより一層柔軟に行っていくために覚えておくべき機能の一つなので、ぜひ最後までご一読いただけると幸いです。
参照:Salesforce(セールスフォース)とは?製品群や機能、メリット・デメリットを簡単に解説!
目次
Salesforceの数式項目とは?
まずはSalesforceの「数式項目」について、基本的な理解を深めていきましょう。
数式項目を活用する上で重要な”クロスオブジェクト数式”についても解説しておりますので、初めて聞いた方はぜひキーワードから押さえてください。
Salesforceの数式項目の役割
Salesforceの数式項目は、標準オブジェクトおよびカスタムオブジェクトの項目として追加でき、他の項目の値を基にして値を返します。
例えば、売上高とコストから利益を算出したり、日付項目から特定の期間を計算したりすることができます。
また、数式項目ではSalesforceが提供する豊富な関数を利用して、より高度な計算や条件分岐も可能です。
これにより、ユーザーは手動でデータを計算する必要はなく、顧客や商談に関わる数式データを一覧ですぐに取得することができます。
Salesforceのクロスオブジェクト数式項目
Salesforceのクロスオブジェクト数式項目とは、同一オブジェクト内の項目だけではなく、親オブジェクトのデータ項目を参照して、子オブジェクトの数式項目に表示させる機能です。
例えば、親オブジェクトである取引責任者オブジェクトが持つ「部署」項目を、クロスオブジェクト数式項目を活用して子オブジェクトである商談オブジェクトに表示させることが可能です。
またクロスオブジェクト数式項目はオブジェクトの親子関係に依存するため、参照する親レコードの値が変われば、商談オブジェクトに表示されている項目の値は変わり、紐づく親レコードが変われば、同様に商談オブジェクトに表示される項目の値は変わります。
そのデータ変更の即時性も数式項目を活用して表示データを管理するメリットと言えるでしょう。
ただし、数式項目でデータを参照できるのは子から親だけであり、子オブジェクトの項目を親オブジェクトに表示させることはできません。
さらにクロスオブジェクト数式項目の特徴として、最大で10リレーション離れたオブジェクトの値を参照することができます。
クロスオブジェクト数式項目を設定するには、前提としてオブジェクト同士が親子関係になっている必要があります。
参照:Salesforceの参照関係・主従関係とは?違いや設定方法について解説
代表的なSalesforceの数式・関数
次にSalesforceの数式項目を活用するためによく使われる代表的な数式や演算子、関数についてご紹介します。
Salesforceの公式ヘルプページより、活用頻度が高いものを一部抜粋しております。
参照:公式ヘルプページ
自社のSalesforceで数式項目の設定をする際は、各演算子や関数を組み合わせる必要があるため、ぜひ本章を繰り返し参照してください。
算術演算子
演算子 | 説明 | 活用例 |
---|---|---|
+ (加算) | 2 つの値の合計を計算 | 商品単価の合計を算出 |
– (減算) | 2 つの値の差を計算 | 単価から値引き金額を引いて売上を算出 |
* (乗算) | その値を乗算 | 単価と販売個数をかけて売上を算出 |
/ (除算) | その値を除算 | 売上を単価で割って販売個数を算出 |
() (開き括弧と閉じ括弧) | 開き括弧と閉じ括弧で囲まれた式を最初に計算するように指定その他の式は、標準の演算子の優先順位で計算 | 各商品単価を()で括って足し合わせた後、販売個数をかけて売上を算出 |
論理演算子
演算子 | 説明 | 活用例 |
---|---|---|
= および == (等号) | 2 つの値が等しいかどうかを評価 | 商談のステージが「クローズ」であるかを確認 |
<> および != (不等号) | 2 つの値が異なるかどうかを評価 | 商談が「クローズ」されていないことを確認 |
< (未満) | 値がこの記号に続く値よりも小さいかどうかを評価 | 商談の金額が目標未満であるかを確認 |
> (より大きい) | 値がこの記号に続く値よりも大きいかどうかを評価 | 商談の金額が目標を超えているかを確認 |
<= (以下) | 値がこの記号に続く値以下かどうかを評価 | 商談フォローの締切日が今日以下であるかを確認 |
>= (以上) | 値がこの記号に続く値以上かどうかを評価 | 商談の金額が目標以上であるかを確認 |
&& (AND) | 2 つの値、または式が両方とも true であるかどうかを評価 | 商談のフェーズが「クローズ」かつ金額が「入力済み」かを確認 |
|| (OR) | 複数の値または式のうち、少なくとも 1 つが true であるかどうかを評価 | 商談フェーズが「提案中」、「交渉中」の場合を確認 |
テキスト演算子
関数 | 説明 | 活用例 |
---|---|---|
& および + (連結) | 2 つ以上の文字列を連結 | 取引先名と提案商品名を合わせて商談名として設定 |
日付および時間関数
関数 | 説明 | 活用例 |
---|---|---|
ADDMONTHS | 指定した日付の指定の月数前または後の日付を返す | 商談作成日から1か月後のフォローアップ期限を設定 |
DATE | 入力した年、月、および日の値から日付値を返す | 日付データから商談獲得日を取得 |
DATEVALUE | 日付/時間またはテキストの式に対して日付型の値を返す | テキストで入力された契約締結日を日付型に変更 |
DAY | 月の日付を、1 から 31 までの数値形式で返す | 商談獲得予定日の日付のみを取得 |
MONTH | 数値形式で指定された日付の中の、1 (1 月) から 12 (12 月) までの数値を返す | 商談獲得予定日の月のみを取得 |
NOW | 現在の日付/時間を返す | 訪問開始時間などタイムスタンプに使用 |
TODAY | 現在の日付を日付データ型で返す | 商談作成日を取得 |
WEEKDAY | 1 (日曜日)、2 (月曜日)、~ 7 (土曜日) を使用して、指定された日付の曜日を返す | 商談獲得日の曜日を取得 |
YEAR | 指定された日付の 4 桁の年を数値形式で返す。 | 商談獲得の年を取得 |
論理関数
関数 | 説明 | 活用例 |
---|---|---|
AND | 値がすべて真である場合は TRUE を返し、1 つ以上の値が偽である場合は FALSE を返す | 商談のフェーズが「クローズ」かつ金額が「入力済み」かを確認 |
IF | 式が真か偽かを判断し、真の場合は与えられた値を返し、偽の場合は別の値を返す | 成約見込み金額が規定値を超えた場合に大型商談としてチェック |
NOT | 真であれば FALSE、偽であれば TRUE を返す | 商談がまだ「クローズ」ではないことを確認 |
OR | 式が真か偽かを判断し、式が真である場合は TRUE を返し、式が偽である場合は FALSE を返す | 商談フェーズが「提案中」、「交渉中」の場合を確認 |
算術関数
関数 | 説明 | 活用例 |
---|---|---|
ABS | 数値の絶対値を計算数値の絶対値は、正または負の記号のない数値 | 売上目標との差額の絶対値を計算 |
CEILING | 数値を最も近い整数 (負の場合は 0 から遠い方) に切り上げる | 割引率の切り上げ計算 |
FLOOR | 最も近い整数 (負の場合は 0 に近い方) に切り捨てられた数値を返す | 割引率を適用した販売金額を整数に切り捨てる |
MAX | 数値のリストの中で最大の数値を返す | 今月の商談の中で最大の金額を表示 |
MIN | 数値のリストの中で最小の数値を返す | 今月の商談の中で最小の金額を表示 |
ROUND | 数値を指定した桁数で制限する | 売上に原価率をかけて粗利を計算 |
テキスト関数
関数 | 説明 | 活用例 |
---|---|---|
CONTAINS | 2 つのテキストの引数を比較し、最初の引数に 2 番目の引数が含まれる場合には TRUE を返し、含まれない場合は FALSE を返す | 商談のコメントに特定のキーワードが含まれているかを確認 |
LEFT | テキスト文字列の先頭から、指定した数の文字を返す | 顧客や店舗コードの先頭3文字を抽出 |
LEN | 指定したテキスト文字列の文字数を返す | 顧客や店舗コードの文字数を取得 |
RIGHT | テキスト文字列の末尾から、指定した数の文字を返す | 顧客や店舗コードの末尾3文字を抽出 |
TEXT | 数値や日付など各項目のデータ型をテキストに変換する | 顧客IDをテキスト型に変換してカウント |
TRIM | テキスト文字列の先頭と末尾から、スペースとタブを削除する | 商談コメントの前後のスペースを削除 |
VALUE | テキスト文字列を数値に変換する | テキストで入力された金額を数値に変換して計算 |
Salesforceの数式項目の具体的な活用方法
Salesforceの数式項目について、役割やよく使われる数式・関数・演算子について理解を深めていただいたところで、実際に実務で数式項目を活用する例について紹介します。
ここで紹介している活用例はごく一部であるため、自社のSalesforc環境で数式項目を活用する際にはぜひ様々な活用方法を検討してみてください。
営業部門における数式項目の活用例
営業部門では、数式項目を活用してフォローの効率を向上させることができます。
例えば、商談の「次回フォロー日」を自動計算するような数式項目を作成します。
この数式項目に、商談の作成日から7日後の値を自動的に返させることで、営業メンバーは複数の商談対応に追われながらも、どの商談を優先的にフォローすべきか、フォローの抜け漏れを減らすことができます。
マーケティング部門における数式項目の活用例
マーケティング部門では、数式項目を活用して効果的なリードナーチャリングを行うことが可能です。
例えば、リード作成後、10日以上フォローがされていないリードにチェックを付けて管理するような数式項目を作成します。
イベント参加後のフォローを顧客の属性や要望に合わせてマーケティングチームや営業チームで連携して実施する際、どのリードが対応済みか、また対応が10日以上漏れてしまっているかを数式項目を活用して判断することで、対応の遅れを最小限にし、10日以上フォローができていないリードに対して一気にアプローチをかけることもできます。
数式項目の高度な活用例
Salesforceの数式項目では、単純な値の計算やチェックだけではなく、イメージを表示させることも可能です。
例えば、商談フェーズに応じて獲得率を表示する際、関数で商談フェーズに対応する獲得率を設定し、その獲得率に応じたイメージを表示させることで、視覚的にもデータの把握がしやすくなります。

注意すべき点として、「〇〇という条件に当てはまる場合に、△△の画像を表示させる」ような関数を組んでいるため、レポートやダッシュボードのように簡単に可視化を実施することは難しいです。
Salesforceの数式項目の作成・設定方法
ここからは実際にSalesforceの数式項目を作成していくステップについて解説します。
数式項目の作成プロセス自体は簡単ですが、自社のSalesfroceにおいて数式項目を用いてどのような表示をさせたいかの検討が重要になるため、ぜひ本記事の関数一覧と合わせて繰り返し確認してみるようにしてください。
作成方法については、標準的な数式項目とクロスオブジェクト数式項目の2つに分けて説明します。
標準的な数式項目の作成方法
1.Salesforceの「設定(右上の歯車アイコンから選択)」をクリック

2.左上タブにある「オブジェクトマネージャ」 をクリック

3.「オブジェクトマネージャ」のクイック検索ボックスに、数式項目を作成したい任意のオブジェクト名を入力して、表示結果を選択

4.オブジェクトページの左側から「項目とリレーション」を選択し、「新規」をクリック

5.データ型から「数式」を選択し、「次へ」をクリック

6.任意の「項目の表示ラベル」、「項目名」、「数式の戻り値のデータ型」を指定し、「次へ」をクリック
本ステップでは、「商談完了予定日から10日以上経過しているかつ商談フェーズがクローズされていない商談レコードにチェックをつける」数式項目を作成しています。

7.表示したい条件に合わせて数式を記載し、構文エラーがないことを確認して「次へ」をクリック
例:商談完了予定日から10日以上経過しているかつ商談フェーズがクローズされていない商談レコードにチェックをつける
AND(
ISBLANK( CloseDate ) = FALSE, /* 完了予定日が設定されているか */
TODAY() – CloseDate >= 10, /* 商談完了予定日から10日以上経過しているか */
ISPICKVAL( StageName , “Closed Won”) = FALSE /* 商談フェーズが「Closed Won」でないか */
)

※エラー時には、エラー内容が発生しているか表示されます。

8.プロファイル別の参照権限を設定し、「次へ」をクリック
参照:Salesforceの項目レベルセキュリティとは?設定方法や「参照可能」・「参照のみ」の違いについて解説

9.作成した数式項目を追加したい任意のレイアウトをチェックして、「保存」をクリック

10.作成した数式項目が正しく機能していることを確認し、完了
下記の商談レコードでは、
- 完了予定日が2024/06/11であり、予定日から10日以上経過している
- 商談フェーズが「クローズ済み」ではない
- そのため「商談完了予定日10日以上経過」にチェックがついている

クロスオブジェクト数式の作成方法
クロスオブジェクト数式も同様の手順で作成が可能です。
1.Salesforceの「設定(右上の歯車アイコンから選択)」をクリック

2.左上タブにある「オブジェクトマネージャ」 をクリック

3.「オブジェクトマネージャ」のクイック検索ボックスに、数式項目を作成したい任意のオブジェクト名を入力して、表示結果を選択

4.オブジェクトページの左側から「項目とリレーション」を選択し、「新規」をクリック

5.データ型から「数式」を選択し、「次へ」をクリック

6.任意の「項目の表示ラベル」、「項目名」、「数式の戻り値のデータ型」を指定し、「次へ」をクリック
本ステップでは、「取引先オブジェクトにある電話項目を商談オブジェクトに表示させる」数式項目を作成する。
キャプチャでは、電話項目のデータ型が”テキスト”のため、戻り値のデータ型も”テキスト”を選択

7.「高度な数式」タブを選択し、「項目の挿入」をクリック

8.クロスオブジェクト数式項目で取得したい項目を選択し、「挿入」をクリック

9.関数が挿入されたことを確認して、「次へ」をクリック

10.プロファイル別の参照権限を設定し、「次へ」をクリック

11.作成した数式項目を追加したい任意のレイアウトをチェックして、「保存」をクリック

12.作成した数式項目が正しく機能していることを確認し、完了

Salesforceの数式項目の制限事項・エラー対応
Salesforceのデータを効果的に活用する上で重要な数式項目ですが、数式項目を設定するためにいくつかの制限事項も存在します。
履歴が保持できない
まず数式項目の計算結果は常にリアルタイムに更新されるため、バッチ処理やトリガーのように履歴を持つことはできません。
文字数の制限がある
数式項目には文字数制限があります。
スペースや改行文字、コメントを含めて最大3,900文字まで使用できます。
この制限を超える場合は、数式項目を分割して作成し、それら複数の数式項目を参照して表示したいデータを取得する必要があります。
バイト数の制限がある
また同様に、数式項目にはサイズ制限に注意が必要です。
数式を保存する際のサイズ制限は4,000バイトであり、特にマルチバイト文字(全角文字など)を使用する場合、バイト数が増えることに留意する必要があります。
コンパイルサイズの制限がある
さらに、コンパイルサイズにも制限があります。
コンパイルとはSalesforceに記載した数式をSalesforce上で実行するために命令として変換することを指し、数式項目のコンパイルサイズは15,000バイト以下である必要があります。
TEXTやDATEVALUEなどの関数を使用すると、コンパイルサイズがかなり大きくなる傾向にあります。
これらの制限を理解し、適切な対策を講じることで、Salesforceの数式項目をより効果的に活用できるでしょう。
まとめ
本記事では、Salesforceの数式項目について、基本的な機能や関連するクロスオブジェクト数式項目、活用場面や実際の設定方法について解説してきました。
自社のSalesforceにおいても、数式項目を活用した業務効率化を実装するイメージをお持ちいただけたでしょうか?
数式項目は、関数や演算子といった知識が最低限必要になるため、苦手意識を持たれてしまうご担当者様もいるかも知れません。
しかし、多くのお客様が実装されているように、数式項目は、最低限の関数を押さえておけば、様々な場面で転用することができます。
数式項目を効果的に活用するためには、実際に手を動かして関数に慣れ親しむことも重要です。
まずは簡易なものから実際に数式項目を作成してみましょう。
自社のSalesforceにおいて、数式項目を含めベストな活用ができているのか、外部の意見も踏まえて検討をしてみたい方は、ぜひ一度弊社ストラへお問い合わせくださいませ。
ストラでは、各社様が実現したい業務フローや体制をヒアリングした上で、Salesforceを活用していくその先のゴールまでを踏まえて、適切なSalesforceの環境設定や運用を支援いたします。
本記事を読んで、自社のSalesforce活用について今一度見直してみたいと思われた担当者様は、ぜひこちらのお問い合わせフォームよりまずはお気軽にご相談してみてください。


執筆者 代表取締役社長 / CEO 杉山元紀
大学卒業後、株式会社TBI JAPANに入社。株式会社Paykeに取締役として出向し訪日旅行者向けモバイルアプリ及び製造小売り向けSaaSプロダクトの立ち上げを行う。
アクセンチュア株式会社では大手メディア・総合人材企業のセールス・マーケティング領域の戦略策定や業務改革、SFA・MAツール等の導入及び活用支援業務に従事。
株式会社Paykeに再入社し約10億円の資金調達を行いビジネスサイドを管掌した後、Strh株式会社を設立し代表取締役に就任。
▼保有資格
Salesforce認定アドミニストレーター
Salesforce認定Marketing Cloudアドミニストレーター
Salesforce認定Marketing Cloud Account Engagementスペシャリスト
Salesforce認定Marketing Cloud Account Engagement コンサルタント
Salesforce認定Sales Cloudコンサルタント
Salesforce認定Data Cloudコンサルタント