この記事では、Salesforceにおける数式とは何を指すのか、どんな時にどうやって使用するのか事例を上げながら紹介しています。そして数式で使用する主な演算子や関数も掲載していますので、具体的に何が出来そうか、イメージを掴める内容となっています。
Salesforceにおける数式とは?
数式項目とは Salesforceのデータ型の種類の一つです。数字や通貨の複雑な計算は元より、複数の項目の文字列を連結したり、画像やリンクを表示したりと、とても柔軟な使い方ができます。 数式内では、IF文やAND、ORなどのExcelでおなじみの数式のほか、便利な関数がたくさん用意されています。
数式を使って、特定の参照項目の参照先のレコードの項目を指定して参照元レコードに数式項目として表示する機能もよく使います。
数式を使用することで、手動でデータを入力する必要がなくなり、データの一貫性と精度が向上します。数式はSalesforceを活用する上で無くてはならない機能になりますのでぜひ確認していきましょう。
Salesforce内での数式の活用シーン
Salesforceの数式を活用するシーンは非常に多く、あらゆる場面で登場します。
名称 | 概要 |
カスタム項目 | カスタム項目としてレコード上に表示されます。この数式項目自体には入力できず、あらかじめ設定しておいた数式の計算結果を表示します。 |
レポート | レポートでは、基本的にレコードにある項目を列として集計しますが、数式を使用することで、計算結果を表示する列を新たに表示できます。集計レベルの数式と、行レベルの数式という2種類があります。 |
入力規則 | レコードにデータを入力する際のルールを設定する機能です。 入力規則の作成のためには、数式でルールを表現する必要があります。 |
フロー | フローはSalesforceの自動化機能です。やや上級編ですが、フローの中で取ってきたレコードやユーザーが入力した値を使って数式を作成します。 |
承認プロセス | 承認申請を承認する標準機能です。自動承認などの基準として数式を活用する場合があります。 |
数式の活用&設定の例
数式をカスタム項目で使用すると、ユーザーに入力させることなく、統制のきいた値を表示することが出来ます。数式項目はレポートで集計することも可能です。
また、数式項目は自動計算されるため、ユーザーが手入力することは出来ず、下図の通り鉛筆マークも出ません。
数式カスタム項目同士をさらに数式で合算したりすることなども可能です。
数式をカスタム項目で作成する方法
数式のカスタム項目作成方法は以下の通りです。
設定したい対象のオブジェクトのタブを開き、画面右上の歯車マーク⇒「オブジェクトを編集」を押します。すると、現在開いているオブジェクトのオブジェクトマネージャーを開くことが出来ます。
左側のサイドメニューから項目とリレーションを選択します。新規ボタンを押します。
データ型を選択する画面が開きますので、数式を選択し、次へを押します。
項目の表示ラベルと、数式で出力される値のデータ型を選択する画面が開きます。ここでは例として税込み金額を自動計算する数式を作成しますので、数式で返される値のデータ型は「通貨」を選択します。
こちらが実際に数式を入力する画面です。デフォルトで「高度な数式」タブが選ばれているはずです。通常は高度な数式しか使いません。
次に、数式を作るために「項目の挿入」を押してみます。
数式は既存の項目を使用して何らかの計算をしますので、数式に使用する項目を選択する必要があります。
ここでは、税込み金額を計算したいので、商談オブジェクトの「金額」項目を選択しています。
ちなみに一番左の選択窓がオブジェクトの選択です。その右となりが、左で選んだオブジェクトの項目です。項目名に「>」がついていると、その項目は参照項目なので参照先のオブジェクトまで潜って、そのオブジェクトの項目値を数式に使用することが出来ます。
項目を選択し、「挿入」を押すと数式に項目がセットされます。
こんな感じです。項目のAPI参照名を把握していれば、直打ちで入れることも出来ます。
次に、演算子を挿入します。こちらはExcelなどでも一般的に使われているかと思います。下図の選択リストから挿入することも出来ますが、直打ちで入れてしまった方が早いでしょう。
今回の例として税込み金額を計算しますので、金額に1.01を掛け算すればOkですね。掛け算には「*」を使用します。「構文を確認」ボタンを押すと、構文に間違いがないかチェックできます。
あとは「次へ」を押していき保存すれば完成です。カスタム項目の細かい設定方法はこちらに詳しく解説しています。
なお、今回紹介した税込み金額の数式は最もシンプルな部類ですが、数式では関数を使用して様々なことが実現できます。関数の使い方は、数式編集画面の右側の「関数」から選択し、「選択した関数を挿入」を押すと、編集欄に関数がセットされます。
下図ではIF文をセットしています。「選択した関数を挿入」から関数を使用すると、例文が入った状態でセットされます。下図でいいますと「logical test」などがそれにあたります。使用する際には、実際の項目を挿入して、置き換えて使用します。
関数についてもっとサンプルを知りたい場合には、こちらの記事も参考になるかと思います。
数式項目にコメントアウトを入力する方法
Salesforceの数式では、コメントを「/*」と「*/」で囲んで、コメントアウトすることができます。
コメントアウトとはAPI参照名や関数、演算子で作成された複雑な数式に対して、数式の動作を妨げない形で日本語でコメントを残しておける機能です。
数式項目には「説明」という枠があるので、数式そのものの説明はそこでカバーできます。コメントアウトが威力を発揮するのは、長文の数式を使用する時です。
例えばIF文が10個くらい連続する数式の場合、「 /*ここはこういう処理をしている*/ 」という風に数式欄の中の数式の脇にメモしておけるのは、とても分かりやすいです。ぜひ使っていきましょう。
以下は記入例です。こんなに色々書いても「/*」「*/」で囲んでいればエラーになりません。
数式をレポートで作成する方法
先ほどは数式カスタム項目として税込み金額を作成しましたが、このような計算は項目を作成するまでもなくレポート上の数式で計算することも可能です。下図はレポートの数式作成画面です。
レポートで数式を使用する場合は、下図の下▼ボタンから、「集計項目を追加」を押します。また「行レベルの数式」というレポート上で疑似的にカスタム数式項目を一つだけ作成出来る機能も備わっています。
集計レベルの数式、行レベルの数式についてはこちらで詳しく解説しています。
数式を入力規則で設定する方法
下図は入力規則の作成画面です。前述の数式カスタム項目の作成画面と酷似していることがわかるかと思います。入力規則を設定する場合にも、数式を使用することになります。項目の挿入や四則演算の演算子、関数などの使用できるツールは全く同じです。
入力規則の詳しい設定方法はこちらで紹介しています。
共通して使える数式の演算子
数式の演算子はSalesforce内のどの場所でも共通して使用することが出来ます。
以下にSalesforce公式Help記事の「コンテキストごとの数式の演算子と関数」から抜粋して、代表的な演算子を紹介します。
算術演算子
演算子 | 説明 |
+(加算) | 2つの値の合計を計算します。 |
–(減算) | 2つの値の差を計算します。 |
*(乗算) | その値を乗算します。 |
/(除算) | その値を除算します。 |
^(べき乗) | 指定した数の累乗まで数値を乗算します。 |
() (開き括弧と閉じ括弧) | 開き括弧と閉じ括弧で囲まれた式を最初に計算するように指定します。その他の式は、標準の演算子の優先順位で計算されます。 |
論理演算子
演算子 | 説明 |
= および == (等号) | 2 つの値が等しいかどうかを評価します。= および == 演算子は代替可能です。 |
<> および != (不等号) | 2 つの値が異なるかどうかを評価します。 |
< (未満) | 値がこの記号に続く値よりも小さいかどうかを評価します。 |
> (より大きい) | 値がこの記号に続く値よりも大きいかどうかを評価します。 |
<= (以下) | 値がこの記号に続く値以下かどうかを評価します。 |
= (以上) | 値がこの記号に続く値以上かどうかを評価します。 |
&& (AND) | 2 つの値、または式が両方とも true であるかどうかを評価します。この演算子は、論理関数 AND の代わりに使用します。 |
|| (OR) | 複数の値または式のうち、少なくとも 1 つが true であるかどうかを評価します。この演算子は、論理関数 OR の代わりに使用します。 |
代表的な関数
前述の「コンテキストごとの数式の演算子と関数」から抜粋して代表的な関数を紹介します。たくさんの種類がありますのが、すべて覚える必要はなく、都度調べて使っていけばよいかと思います。
また、前述の演算子はSalesforce全体で使用できますが、関数は一部レポートでは使用できない、など機能ごとに制限がありますので使いながら慣れていきましょう。
論理関数
関数 | 説明 |
AND | 値がすべて真である場合は TRUE を返し、1 つ以上の値が偽である場合は FALSE を返します。 |
OR | 式が真か偽かを判断します。式が真である場合は TRUE を返し、式が偽である場合は FALSE を返します。 |
NOT | 真であれば FALSE、偽であれば TRUE を返します。 |
CASE | 与えられた式を一連の値と照合します。式が値と一致する場合は、対応する結果を返します。どの値とも一致しない場合は、else_result を返します。 |
IF | 式が真か偽かを判断します。真の場合は与えられた値を返し、偽の場合は別の値を返します。 |
ISBLANK | 式に値があるかどうかを判断し、ない場合は TRUE を返します。値がある場合は FALSE を返します。 |
ISNULL | 式が null (空白) かどうかを判断し、該当する場合は TRUE を返します。値を含む場合は FALSE を返します。 |
ISNEW | 新規レコードの作成中に数式が実行されているかどうかを確認し、実行中の場合は TRUE を返します。既存のレコードが更新中の場合は、FALSE を返します。 |
PRIORVALUE | 項目の前の値を返します。 |
ISCHANGED | 項目の値を前との値と比較し、異なれば TRUE を返します。値が同じ場合は FALSE を返します。 |
日付および時間関数
機能 | 説明 |
DATE | 入力した年、月、および日の値から日付値を返します。 |
DATEVALUE | 日付/時間またはテキストの式に対して日付型の値を返します。 |
DATETIMEVALUE | 年、月、日、および GMT 時刻値を返します。 |
YEAR | 指定された日付の 4 桁の年を数値形式で返します。 |
MONTH | 指定された日付の月を 1 (1 月) から 12 (12 月) までの数値形式で返します。 |
DAY | 月の日付を、1 から 31 までの数値形式で返します。 |
TODAY | 現在の日付を日付データ型で返します。 |
ADDMONTHS | 指定した日付の指定の月数前または後の日付を返します。 |
算術関数
関数 | 説明 |
ABS | 数値の絶対値を計算します。数値の絶対値とは、正または負の記号のない数値のことです。 |
CEILING | 数値を最も近い整数 (負の場合は 0 から遠い方) に切り上げます。 |
FLOOR | 最も近い整数 (負の場合は 0 に近い方) に切り捨てられた数値を返します。 |
MAX | 数値のリストの中で最大の数値を返します。 |
MIN | 数値のリストの中で最小の数値を返します。 |
MOD | 数値を指定した除数で除算した後の剰余を返します。 |
ROUND | 指定した数値にもっとも近い数値を返します。新しい数値は、指定した桁数で制限します。 |
TRUNC | 数値を指定した桁数に切り捨てます。 |
テキスト関数
関数 | 説明 |
BEGINS | テキストが特定の文字で始まるかどうかを判断します。該当する場合は TRUE を返し、該当しない場合は FALSE を返します。 |
BR | テキスト文字列に改行を挿入します。 |
CASESAFEID | 15 文字の ID を大文字と小文字を区別しない 18 文字の ID に変換します。 |
CONTAINS | 2 つのテキストの引数を比較し、最初の引数に 2 番目の引数が含まれる場合には TRUE を返します。含まれない場合は FALSE を返します。 |
FIND | テキスト文字列中での指定した文字列の位置を数値で返します。 |
HYPERLINK | 指定したテキストからリンク可能な指定 URL へのリンクを作成します。 |
IMAGE | 代替テキストおよび高さと幅の仕様が含まれる画像を挿入します。 |
ISPICKVAL | 選択リスト項目の値が指定したテキストリテラルと等しいかどうかを判断します。 数式のなかで選択リストを評価する際に使用する頻出の関数です。 |
LEFT | テキスト文字列の先頭から、指定した数の文字を返します。 |
LEN | 指定したテキスト文字列の文字数を返します。 |
LOWER | 指定したテキスト文字列内のすべての英字を小文字に変換します。英字でない文字は、この関数の影響を受けません。地域が適用されている場合は地域ルールが適用されます。 |
MID | テキスト文字列中の途中で指定した開始位置から、指定した数の文字を返します。 |
RIGHT | テキスト文字列の末尾から、指定した数の文字を返します。 |
TEXT | 数式を使用するすべての場所で、パーセント、数値、日付、日付/時間、または通貨の各項目のデータ型をテキストに変換します。また、承認ルール、承認ステップルール、ワークフロールール、エスカレーションルール、割り当てルール、自動レスポンスルール、入力規則、数式項目、項目自動更新、およびカスタムボタンとカスタムリンクで、選択リスト値をテキストに変換します。 |
TRIM | テキスト文字列の先頭と末尾から、スペースとタブを削除します。 |
VALUE | テキスト文字列を数値に変換します。 |
REGEX | 正規表現を使用して文字列が特定のパターンに一致するかどうかを評価します。 |
まとめ
本記事では、Salesforceで使用する数式がどんな意味を持つのか、そしてどんなことが出来るのかを解説しました。数式をうまく使えると、業務効率化に直結しますのでぜひ少しづつ触って、慣れていきましょう。