数式項目の使用
学習の目的
数式項目の概要
組織には多くのデータがあります。このデータを見るユーザーは、自分でいろいろ計算することなく一目でデータの内容を理解できなければなりません。これに打ってつけなのが、数式項目という強力なツールです。このツールでデータの表示方法を制御することができます。
たとえば、レコードの 2 つの数値項目を取得して除算し、パーセント値を算出したい場合があります。あるいは、項目をクリック可能なハイパーリンクにして、レコードのページレイアウトから重要な情報に簡単にアクセスできるようにしたいということもあります。2 つの日付を取得して、その間の日数を計算したいと思うことがあるかもしれません。このような操作はすべて数式項目を使用して実現できます。
具体的な例として、商談の完了予定日までの残り日数を計算してみましょう。これには、値を自動計算する簡単な数式項目を作成すれば良いのです。商談ページレイアウトに値を追加するだけで、ユーザーはこの重要な情報にすばやくアクセスできます。この項目をレポートとリストビューに追加すれば、さらに簡単にアクセスできます。
数式に慣れるまでは、簡単な計算式から始めて、徐々に複雑なシナリオに移行していくことをお勧めします。ただし、簡単な数式でも貴重な情報を得ることができます。
この単元では、数式エディターの基本的な使用方法を説明しながら、いくつかの基本的な例を使って数式構文を紹介していきます。また、数式項目の問題のトラブルシューティングについても簡単に説明します。それではやってみましょうか?
数式のハンズオンを始めるには
今すぐ Trailhead Playground を起動し、このモジュールの手順を実行してみましょう。Trailhead Playground を開くには、ハンズオン Challenge までスクロールダウンし、[起動] をクリックします。また、ハンズオン Challenge を実行するときにも Playground を使用します。
数式エディターの場所
まずは数式エディターがどんなものか、どんな機能があるのか見てください。
カスタム数式項目は、どの標準オブジェクトまたはカスタムオブジェクトにも作成できます。まずは、商談オブジェクトに数式を作成します。次の手順に従って数式エディターに移動します。
- [設定] からオブジェクトマネージャーを開き、[商談] をクリックします。
- 左サイドバーで、[項目とリレーション] をクリックします。
- [新規] をクリックします。
- [数式] を選択して、[次へ] をクリックします。
- [項目の表示ラベル] で、「My Formula Field」(私の数式項目) と入力します。[項目名] が自動的に入力されます。
- 数式で返すデータ型を選択します。たとえば、営業担当者の販売時のコミッションを計算する数式を作成する場合は、[通貨] を選択します。ここでは、[テキスト] を選択します。
- [次へ] をクリックします。これが数式エディターです。どんなものか見てみましょう。
数式エディターの使用

- 数式エディターでは、簡単な数式か高度な数式を選択できます。ついつい簡単な方を選びたくなると思いますが、高度な数式エディターを使用することをお勧めします。高度といっても複雑というわけではなく、豊富なツールで強力な数式を作成できるという意味です。
-
[項目の挿入] ボタンをクリックすると、数式に使用する項目を選択できるメニューが開きます。このメニューで項目を挿入すると、その項目にアクセスするための正しい構文が生成されます。
-
[演算子の挿入] ボタンをクリックすると、選択できる算術演算子と論理演算子のドロップダウンリストが開きます。
- [関数] メニューでは、数式関数の表示や挿入が行えます。関数はもう少し複雑な処理なのですが、このように Salesforce によって事前実装されています。現在の日付を返す TODAY() 関数など、そのまま使用できる関数もありますが、追加情報が必要な関数もあります。この追加情報は「パラメーター」と呼ばれます。たとえば、LEN(text) 関数はパラメーターとして入力したテキストの文字数を返します。数式 LEN("Hello") は 5 の値を返します。
- テキストエリアには数式を入力します。入力時には、次の点に注意してください。
- 空白文字は考慮されません。空白や改行をどれだけ挿入しても数式の実行には影響しません。
- 数式では、大文字と小文字が区別されます。項目名やオブジェクト名の大文字と小文字に注意してください。
- 数値には、標準の演算処理の順序が適用されます。
- 数式を入力したら、[構文を確認] ボタンをクリックします。これで数式が正常に動作することが確認できたら、数式を保存します。数式に問題がある場合は、構文チェッカーでその問題が指摘されます。
この数式項目の作成は終わったので、[キャンセル] をクリックします。基本的な操作方法はおわかりいただけたでしょうか? それではエディターで簡単な例を実際に使ってみましょう。
例 1: 取引先責任者の詳細ページに取引先項目を表示する
レコードの詳細ページには多くの情報が含まれていますが、それでも足りずに他の情報が必要になる場合があります。最初の数式は、簡単なものにしましょう。[取引先] から項目を 1 つ使用し、クロスオブジェクト数式という機能を使用して [取引先責任者] に表示します。詳しく見てみましょう。
最初に取引先責任者を作成します。今まで取引先責任者を作成したことがない場合は、アプリケーションランチャー をクリックし、[取引先責任者] を選択します。次に、[取引先責任者] タブに移動して、[新規] をクリックします。[姓] の値を入力します。[取引先名] に既存の取引先 (United Oil & Gas Corp など) を入力します。[保存] をクリックします。次に、取引先責任者ページに取引先番号を表示する数式を作成します。
- [設定] からオブジェクトマネージャーを開き、[取引先責任者] をクリックします。
- 左サイドバーで、[項目とリレーション] をクリックします。
- [新規] をクリックします。
- データ型に [数式] を選択し、[次へ] をクリックします。
- 項目の表示ラベルを
Account Number
(取引先番号) とし、数式の戻り値のデータ型に[テキスト] を選択します。[次へ] をクリックします。 - 高度な数式エディターで [項目の挿入] をクリックします。[取引先責任者] | [取引先] | [取引先番号] を選択し、[挿入] をクリックします。[構文を確認] をクリックします。構文エラーがなければ、[次へ] をクリックします。このような単純な数式で構文エラーになることはほぼありませんが、すべての数式で構文をチェックする習慣を付けることをお勧めします。
- [次へ] をクリックして項目レベルセキュリティ設定を受け入れ、[保存] をクリックします。
最初の数式の完成です。いよいよ完成した作品のお披露目です。作成した取引先責任者オブジェクトの詳細ページを開いて、新しい [取引先番号] 数式項目を探してください。優れものですよね?
例 2: 商談が完了するまでの日数をレポートに表示する
数式項目を使用して、レポートに表示される重要な情報を増やすこともできます。たとえば、商談が完了するまでの日数が表示される列を追加したいとします。まずは、数式をテストするための商談を作成します。
まだ商談が作成されていない場合は、 をクリックして [商談] を選択し、[商談] タブに移動して [新規] をクリックします。[商談名] に任意の値を入力して任意の [フェーズ] を選択し、3 日後以降の完了予定日を設定します。[保存] をクリックします。
次の手順を実行して、その商談オブジェクトで戻り値のデータ型が [数値] の「Days to Close」(完了までの日数) というカスタム数式項目を作成します。
- [設定] からオブジェクトマネージャーを開き、[商談] をクリックします。
- 左サイドバーで、[項目とリレーション] をクリックします。
- [新規] をクリックします。
- [数式] を選択して [次へ] をクリックします。
- [項目の表示ラベル] テキストエリアに、
Days to Close
(完了までの日数) と入力します。 - [数値] ラジオボタンをオンにします。
- [次へ] をクリックして数式エディターを開きます。
- 今日から商談完了予定日までの日数を求めるには、日付の差を計算します。
- [項目の挿入] をクリックし、[商談] | [完了予定日] を選択して [挿入] をクリックします。
- [演算子の挿入] メニューから、[- 減算] を選択します。
- さて、数式に「今日」という日付を伝えるにはどうすればよいでしょう? ここで登場するのが、現在の日付に合わせて更新される TODAY() という便利な関数です。
- エディターの右側の [関数] メニューで [TODAY] を選択します。
- [選択した関数を挿入] をクリックします。
-
[構文を確認] をクリックします。構文エラーがなければ、[次へ] をクリックします。
- [次へ] をクリックして項目レベルセキュリティ設定を受け入れ、[保存] をクリックします。
次は、この新しい数式項目をレポートに含めます。
-
から [レポート] タブを開き、[新規レポート] をクリックします。
- [レポートタイプを検索...] 項目に「商談」と入力します。[商談] を選択して [続行] をクリックします。レポートのプレビューパネルに商談が表示されます。
- [自動的にプレビューを更新] が有効になっていることを確認します。
- ページの左側にある [列を追加...] 項目に
Days to Close
(完了までの日数) と入力します。 この項目は、先ほど作成した数式項目です。計算された値の入った項目を含む列が自動的にレポートに追加されます。
この単元ではこのレポートはもう使用しません。破棄して次の例に進みます。
例 3: Power of One を使用して個別のオブジェクトを検索する
何百件ものレコードがあるレポートで注目されるのは、ユニークオブジェクトの数です。たとえば、レポートには 100 個の商談がリストされていますが、これらすべての商談が数人のユーザーによって所有されているとします。ユニークユーザーの数を調べるにはどうすればよいでしょうか。この作業は難しそうに感じますが、一般的に作成できる最も簡単な数式の 1 つです。これは「Power of One」と呼ばれます。
この数式を作成するには、ユーザーオブジェクトにカスタム数式項目を作成します。その名前を Unique Users
(ユニークユーザー数) とし、戻り値のデータ型を [数値] にして、[小数点の位置] ドロップダウンリストから [0] を選択します。[次へ] をクリックして数式エディターを開きます。この数式には、項目や演算子、関数を挿入する必要はありません。数値「1」を入力するだけです。
これでおしまいです! 後は通常どおりに数式を保存し、[レポート] タブをクリックして実際にどのように表示されるかを確認します。商談レポートを作成し、[自動的にプレビューを更新] が有効になっていることを確認します。ページの左側にある [列を追加...] 項目に Unique Users
(ユニークユーザー数) と入力して、新しい項目を含む列をレポートに追加します。新しい項目が表示されない場合は、[レポート] タブを更新してください。次のような結果が表示されます (表示した列に応じてレポートの表示が異なる場合があります)。
![[Unique Users (ユニークユーザー数)] 列が表示されたレポート](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/point_click_business_logic/formula_fields/images/ja-JP/21e463f020e79992e07c316c0bb79b21_formulas-one-report.png)
ここでは、2 人のユニークユーザーによる 5 つの商談があります。作成した数式はどこにあるのでしょうか。[Unique Users (ユニークユーザー数)] 列でドロップダウンメニューをクリックし、[集計] を選択して、[合計] を選択します。
![[集計] と [合計] が選択されたドロップダウンメニュー](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/point_click_business_logic/formula_fields/images/ja-JP/0f899808bfd5c86704f91816e5be1bcf_formulas-one-summarize.png)
ユニークユーザー数が列の一番下に表示されます。このように、簡単な数式でも組織の詳細情報を確認することができます。

数式のデバッグ
数式の操作では構文エラーを避けることはできません。エディターの [構文を確認] ボタンは、数式をデバッグするための重要なツールです。構文チェッカーによって、数式で発生したエラーとその発生場所を知ることができます。一般的な構文の問題には次のようなものがあります。
-
括弧が不足している: このエラーは、左括弧の数が右括弧の数と一致しない場合に最も多く発生します。同時に複数の関数を使用している場合は、特にこのエラーを回避することが難しくなります。関数を複数行に分けて、左右の括弧の組み合わせを簡単に判別できるようにしてください。
関数の 2 つのパラメーター間にカンマを入れ忘れた場合にもこのエラーが発生します。この場合は、実際の問題と構文チェッカーのエラーが一致しないため混乱を招く可能性があります。括弧が正しいことが明確な場合は、関数のカンマが正しいことを再確認してください。
-
パラメーター種別が間違っている: 関数にテキスト (またはその他のデータ型の組み合わせ) のパラメーターが必要なときに数値パラメーターを渡した場合、このエラーが発生します。常に、ヘルプテキストやドキュメントで関数に使用できるパラメーター種別を確認してください。
-
パラメーターの数が間違っている: 関数に入力したパラメーターの数が多すぎるか少なすぎる場合は、このエラーが表示されます。この場合も、ヘルプテキストやドキュメントで特定の関数へのパラメーターの入力ガイドラインを確認してください。
-
数式の結果が数式の戻り値のデータ型と互換性がない: このエラーは、数式項目を作成するときにあるデータ型を選択し、別のデータ型を返す数式を作成したときに発生します。次の例では、[私の取引先数式] は数値を返すことになっていますが (数式名の横の括弧内に表示)、TODAY() 関数は日付を返します。このエラーには期待されるデータ型が表示されますが、エラーを避けるために常に前もってドキュメントを参照することをお勧めします。
-
項目が存在しない: このエラーは、数式にオブジェクトでサポートされていない項目が含まれていることを示します。この場合は、スペルと大文字/小文字を確認してください。誤りが見つからない場合は、再度 [項目の挿入] メニューから項目を挿入し、正しく参照していることを確認してください。
このエラーは、テキストリテラルまたはハイパーリンクを引用符で囲むことを忘れた場合にも表示されます。
-
不明な関数: この場合は、使用している関数が Salesforce でサポートされていることを確認してください。関数のスペルが間違っている場合にもこのエラーが表示されます。
その他の例
- この数式は、HYPERLINK() 関数を使用して外部 Web サイトへのハイパーリンクを作成します。ページレイアウトにハイパーリンクを追加することで、ユーザーが詳細ページから重要な情報にすばやくアクセスできます。
- 商談金額に割引を適用する場合は、次の数式を使用できます。この場合は、12% の割引を適用し、ROUND() 関数を使用して小数点以下 2 桁に四捨五入します。
- この数式は、特定の商談が「大型」商談であるかどうかを判断するチェックボックス数式です。商談取引先に関連付けられている会社の従業員数が 1,000 人より多いかどうかを調べ、さらに商談金額が 10,000 ドルを超えているかどうかを調べます。両方のステートメントが true の場合、商談ページレイアウトで項目のチェックボックスがオンになります。それ以外の場合、チェックボックスはオフになります。
数式のドキュメントには、多数の異なる使用事例における非常に多くの例が含まれています。これらの例を参照するときに、その多くはこの単元では触れていない高度な概念が含まれていることに注意してください。それらの数式を試す前に、ここに記載されている情報を完全に把握してください。