数式項目の使用
学習の目的
この単元を完了すると、次のことができるようになります。
- カスタム数式項目を作成して数式エディターを使用する。
- 数式項目が役立つ理由を説明する。
- 数式項目の少なくとも 1 つの使用事例の概要を説明する。
- 簡単な数式を作成する。
数式項目の概要
組織には多くのデータがあります。このデータを見るユーザーは、自分でいろいろ計算することなく一目でデータの内容を理解できなければなりません。これに打ってつけなのが、数式項目という強力なツールです。このツールでデータの表示方法を制御することができます。
たとえば、レコードの 2 つの数値項目を取得して除算し、パーセント値を算出したい場合があります。あるいは、項目をクリック可能なハイパーリンクにして、レコードのページレイアウトから重要な情報に簡単にアクセスできるようにしたいということもあります。2 つの日付を取得して、その間の日数を計算したいと思うことがあるかもしれません。このような操作はすべて数式項目を使用して実現できます。
具体的な例として、商談の完了予定日までの残り日数を計算してみましょう。これには、値を自動計算する簡単な数式項目を作成すれば良いのです。商談ページレイアウトに値を追加するだけで、ユーザーはこの重要な情報にすばやくアクセスできます。この項目をレポートとリストビューに追加すれば、さらに簡単にアクセスできます。
数式に慣れるまでは、簡単な計算式から始めて、徐々に複雑なシナリオに移行していくことをお勧めします。ただし、簡単な数式でも貴重な情報を得ることができます。
この単元では、数式エディターの基本的な使用方法を説明しながら、いくつかの基本的な例を使って数式構文を紹介していきます。また、数式項目の問題のトラブルシューティングについても簡単に説明します。それではやってみましょうか?
数式のハンズオンを始めるには
ではここで新しい Trailhead Playground を作成し、このモジュールの手順を実行してみましょう。ページの最下部までスクロールし、Playground 名をクリックして、[Create Playground (Playground を作成)] を選択します。Trailhead Playground を作成するには、通常 2 ~ 3 分かかります。また、ハンズオン Challenge を実行するときにも Playground を使用します。
数式エディターの場所
まずは数式エディターがどんなものか、どんな機能があるのか見てください。
カスタム数式項目は、どの標準オブジェクトまたはカスタムオブジェクトにも作成できます。まずは、商談オブジェクトに数式を作成します。次の手順に従って数式エディターに移動します。
- [Setup (設定)] から [Object Manager (オブジェクトマネージャー)] を開き、[Opportunity (商談)] をクリックします。
- 左サイドバーで、[Fields & Relationships (項目とリレーション)] をクリックします。
-
[New (新規)] をクリックします。
-
[Formula (数式)] を選択して、[Next (次へ)] をクリックします。
-
[Field Label (項目の表示ラベル)] で、
My Formula Field
(私の数式項目) と入力します。[Field Name (項目名)] が自動的に入力されます。
- 数式で返すデータ型を選択します。たとえば、営業担当者の販売時のコミッションを計算する数式を作成する場合は、[Currency (通貨)] を選択します。ここでは、[Text (テキスト)] を選択します。
-
[Next (次へ)] をクリックします。これが数式エディターです。どんなものか見てみましょう。
数式エディターの使用
この画像でマークされているのは数式エディターの中で最も重要な部分です。
- 数式エディターでは、簡単な数式か高度な数式を選択できます。ついつい簡単な方を選びたくなると思いますが、高度な数式エディターを使用することをお勧めします。高度といっても複雑というわけではなく、豊富なツールで強力な数式を作成できるという意味です。
-
[Insert Field (項目の挿入)] ボタンをクリックすると、数式に使用する項目を選択できるメニューが開きます。このメニューで項目を挿入すると、その項目にアクセスするための正しい構文が生成されます。
-
[Insert Operator (演算子の挿入)] ボタンをクリックすると、選択できる算術演算子と論理演算子のドロップダウンリストが開きます。
- [Functions (関数)] メニューでは、数式関数の表示や挿入が行えます。関数はもう少し複雑な処理なのですが、このように Salesforce によって事前実装されています。現在の日付を返す TODAY() 関数など、そのまま使用できる関数もありますが、追加情報が必要な関数もあります。この追加情報は「パラメーター」と呼ばれます。たとえば、LEN(text) 関数はパラメーターとして入力したテキストの文字数を返します。数式 LEN("Hello") は 5 の値を返します。
- テキストエリアには数式を入力します。入力時には、次の点に注意してください。
- 空白文字は考慮されません。空白や改行をどれだけ挿入しても数式の実行には影響しません。
- 数式の一部では、大文字と小文字が区別されます。項目名やオブジェクト名の大文字と小文字に注意してください。
- 数値には、標準の演算処理の順序が適用されます。
- 数式を入力したら、[Check Syntax (構文を確認)] ボタンをクリックします。これで数式が正常に動作することが確認できたら、数式を保存します。数式に問題がある場合は、構文チェッカーでその問題が指摘されます。
この数式項目の作成は終わったので、[Cancel (キャンセル)] をクリックします。基本的な操作方法はおわかりいただけたでしょうか? それではエディターで簡単な例を実際に使ってみましょう。
例 1: 取引先責任者の詳細ページに取引先項目を表示する
レコードの詳細ページには多くの情報が含まれていますが、それでも足りずに他の情報が必要になる場合があります。最初の数式は、簡単なものにしましょう。[Account (取引先)] から項目を 1 つ使用し、クロスオブジェクト数式という機能を使用して [Contact (取引先責任者)] に表示します。詳しく見てみましょう。
最初に取引先責任者を作成します。今まで取引先責任者を作成したことがない場合は、アプリケーションランチャー () で [Contacts (取引先責任者)] を見つけて開きます。[New (新規)] をクリックします。[Last Name (姓)] の値を入力します。[Account Name (取引先名)] に既存の取引先 (United Oil & Gas Corp など) を入力します。[Save (保存)] をクリックします。次に、取引先責任者ページに取引先番号を表示する数式を作成します。
- [Setup (設定)] から [Object Manager (オブジェクトマネージャー)] を開き、[Contact (取引先責任者)] をクリックします。
- 左サイドバーで、[Fields & Relationships (項目とリレーション)] をクリックします。
-
[New (新規)] をクリックします。
- データ型に [Formula (数式)] を選択し、[Next (次へ)] をクリックします。
- 項目の表示ラベルを
Account Number
(取引先番号) とし、数式の戻り値のデータ型に [Text (テキスト)] を選択します。[Next (次へ)] をクリックします。
- 高度な数式エディターで [Insert Field (項目の挿入)] をクリックします。[Contact (取引先責任者)] | [Account (取引先)] | [Account Number (取引先番号)] を選択し、[Insert (挿入)] をクリックします。[Check Syntax (構文を確認)] をクリックします。構文エラーがなければ、[Next (次へ)] をクリックします。このような単純な数式で構文エラーになることはほぼありませんが、すべての数式で構文をチェックする習慣を付けることをお勧めします。
-
[Next (次へ)] をクリックして項目レベルセキュリティ設定を受け入れ、[Save (保存)] をクリックします。
最初の数式の完成です。いよいよ完成した作品のお披露目です。作成した取引先責任者オブジェクトの詳細ページを開いて、新しい [Account Number (取引先番号)] 数式項目を探してください。優れものですよね?
例 2: 商談が完了するまでの日数をレポートに表示する
数式項目を使用して、レポートに表示される重要な情報を増やすこともできます。たとえば、商談が完了するまでの日数が表示される列を追加したいとします。まずは、数式をテストするための商談を作成します。
今まで商談を作成したことがない場合は、アプリケーションランチャー () で [Opportunities (商談)] を見つけて開きます。[New (新規)] をクリックします。[Opportunity Name (商談名)] に任意の値を入力して任意の [Stage (フェーズ)] を選択し、3 日後以降の完了予定日を設定します。[Save (保存)] をクリックします。
次の手順を実行して、その商談オブジェクトで戻り値のデータ型が [Number (数値)] の「Days to Close」(完了までの日数) というカスタム数式項目を作成します。
- [Setup (設定)] から [Object Manager (オブジェクトマネージャー)] を開き、[Opportunity (商談)] をクリックします。
- 左サイドバーで、[Fields & Relationships (項目とリレーション)] をクリックします。
-
[New (新規)] をクリックします。
-
[Formula (数式)] を選択して [Next (次へ)] をクリックします。
- [Field Label (項目の表示ラベル)] テキストエリアに、
Days to Close
(完了までの日数) と入力します。
-
[Number (数値)] ラジオボタンをオンにします。
-
[Next (次へ)] をクリックして数式エディターを開きます。
- 今日から商談完了予定日までの日数を求めるには、日付の差を計算します。
-
[Insert Field (項目の挿入)] をクリックし、[Opportunity (商談)] | [Close Date (完了予定日)] を選択して [Insert (挿入)] をクリックします。
-
[Insert Operator (演算子の挿入)] メニューから、[-Subtract (- 減算)] を選択します。
- さて、数式に「今日」という日付を伝えるにはどうすればよいでしょう? ここで登場するのが、現在の日付に合わせて更新される TODAY() という便利な関数です。
- エディターの右側の [Functions (関数)] メニューで [TODAY] を選択します。
-
[Insert Selected Function (選択した関数を挿入)] をクリックします。
-
[Check Syntax (構文を確認)] をクリックします。構文エラーがなければ、[Next (次へ)] をクリックします。
-
[Next (次へ)] をクリックして項目レベルセキュリティ設定を受け入れ、[Save (保存)] をクリックします。
次は、この新しい数式項目をレポートに含めます。
-
アプリケーションランチャー () で、[Reports (レポート)] を見つけて開き、[New Report (新規レポート)] をクリックします。
- [Search Report Types... (レポートタイプを検索...)] 項目に「Opportunities (商談)」と入力します。[Opportunities (商談)] を選択して [Start Report (レポートを開始)] をクリックします。レポートのプレビューパネルに商談が表示されます。
-
[Update Preview Automatically (自動的にプレビューを更新)] が有効になっていることを確認します。
- ページの左側にある [Add column... (列を追加...)] 項目に
Days to Close
(完了までの日数) と入力します。 この項目は、先ほど作成した数式項目です。計算された値の入った項目を含む列が自動的にレポートに追加されます。
この単元ではこのレポートはもう使用しません。破棄して次の例に進みます。
数式のデバッグ
数式の操作では構文エラーを避けることはできません。エディターの [Check Syntax (構文を確認)] ボタンは、数式をデバッグするための重要なツールです。構文チェッカーによって、数式で発生したエラーとその発生場所を知ることができます。一般的な構文の問題には次のようなものがあります。
-
括弧が不足している: このエラーは、左括弧の数が右括弧の数と一致しない場合に最も多く発生します。同時に複数の関数を使用している場合は、特にこのエラーを回避することが難しくなります。関数を複数行に分けて、左右の括弧の組み合わせを簡単に判別できるようにしてください。
関数の 2 つのパラメーター間にカンマを入れ忘れた場合にもこのエラーが発生します。この場合は、実際の問題と構文チェッカーのエラーが一致しないため混乱を招く可能性があります。括弧が正しいことが明確な場合は、関数のカンマが正しいことを再確認してください。
-
パラメーター種別が間違っている: 関数にテキスト (またはその他のデータ型の組み合わせ) のパラメーターが必要なときに数値パラメーターを渡した場合、このエラーが発生します。常に、ヘルプテキストやドキュメントで関数に使用できるパラメーター種別を確認してください。
-
パラメーターの数が間違っている: 関数に入力したパラメーターの数が多すぎるか少なすぎる場合は、このエラーが表示されます。この場合も、ヘルプテキストやドキュメントで特定の関数へのパラメーターの入力ガイドラインを確認してください。
-
数式の結果が数式の戻り値のデータ型と互換性がない: このエラーは、数式項目を作成するときにあるデータ型を選択し、別のデータ型を返す数式を作成したときに発生します。次の例では、[My Account Formula (私の取引先数式)] は数値を返すことになっていますが (数式名の横の括弧内に表示)、TODAY() 関数は日付を返します。このエラーには期待されるデータ型が表示されますが、エラーを避けるために常に前もってドキュメントを参照することをお勧めします。
-
項目が存在しない: このエラーは、数式にオブジェクトでサポートされていない項目が含まれていることを示します。この場合は、スペルと大文字/小文字を確認してください。誤りが見つからない場合は、再度 [Insert Field (項目の挿入)] メニューから項目を挿入し、正しく参照していることを確認してください。
このエラーは、テキストリテラルまたはハイパーリンクを引用符で囲むことを忘れた場合にも表示されます。
-
不明な関数: この場合は、使用している関数が Salesforce でサポートされていることを確認してください。関数のスペルが間違っている場合にもこのエラーが表示されます。
その他の例
その他のいくつかの例を見てみましょう。必要に応じて、これらの数式を自分で作成してみるか、単に読み進めてください。
- この数式は、HYPERLINK() 関数を使用して外部 Web サイトへのハイパーリンクを作成します。ページレイアウトにハイパーリンクを追加することで、ユーザーが詳細ページから重要な情報にすばやくアクセスできます。
- 商談金額に割引を適用する場合は、次の数式を使用できます。この場合は、12% の割引を適用し、ROUND() 関数を使用して小数点以下 2 桁に四捨五入します。
- この数式は、特定の商談が「大型」商談であるかどうかを判断するチェックボックス数式です。商談取引先に関連付けられている会社の従業員数が 1,000 人より多いかどうかを調べ、さらに商談金額が 10,000 ドルを超えているかどうかを調べます。両方のステートメントが true の場合、商談ページレイアウトで項目のチェックボックスがオンになります。それ以外の場合、チェックボックスはオフになります。
数式のドキュメントには、多数の異なるユースケースでの非常に多くの例が含まれています。これらの例を参照するときに、その多くはこの単元では触れていない高度な概念が含まれていることに注意してください。それらの数式を試す前に、ここに記載されている情報を完全に把握してください。