割合を計算するだけで項目を作るのはどうなのか?
日本でSalesforceブログを書いている人の多くは、導入支援企業に属しているように思います。
そのためか、Salesforce導入支援の現場では「集計に使いたいから項目を追加で作ろう」という判断を、わりと容易に行いがちです。
しかし、実際に運用が始まったあとに新たな項目を作るというのは、組織運用上かなりハードルが高いです。
(※逆に「すぐ作れちゃう環境」だとすれば、それはそれで問題です)
新しい項目を作るということは、プロファイル設定やレイアウト調整、監査対応など、副作用が多く発生します。軽く見積もらない方がいいです。
本記事の目的
今回は、「割合を出したい」という目的に対して、オブジェクトに新しい項目を追加せずに対応する方法について整理して紹介します。
項目を作らずに割合を出す方法
-
円グラフや100%積上グラフで割合を示す
- 最もシンプル。グラフで割合を表現し、マウスオーバーで数値も確認できる
- グルーピングしてグラフを表示するだけで済む
-
バケット項目を使って、選択リストを欲しい粒度にしてグラフにする
- 1の応用。「バケット項目」を使えば、分類を変えるだけで集計粒度を変えられる
- 選択肢リストを選ぶだけなので一般ユーザーにとっても理解しやすい
-
集計関数(例: PARENTGROUPVALなど)を使って割合を出す
- レポート内で数値を持ちたい場合は、集計数式を使うことになる
- ロジックを理解すれば、他の集計にも応用できる
-
行レベル数式で選択肢をフラグ化し、割合を出す
- ISPICKVAL などを使って Yes/No や 1/0 に変換し、そこから割合計算
- 見た目はすっきりときれいに作れる
どれを選ぶべきか?
これはあくまで私見ですが、一般ユーザーにおすすめしたい順番は以下のとおりです:
1 → 2 → 3 → 4
というのも、「4」の行レベル数式は作る側から見ると一番楽なのですが、使う側にとっては理解が難しいケースが多いためです。
例えば ISPICKVAL 関数。Salesforce 開発者にとってはよく使う関数でも、一般ユーザーはこの場面でしか触れる機会がなく、応用が効きづらいです。
それであれば、多少ハードルが高くても PARENTGROUPVAL のようにレポート構造を理解しながら使う関数のほうが、ユーザー本人の学びにもつながり、結果的に運用も安定します。
また、行レベル数式で作った割合計算は、グルーピング内に分母と分子のレコードが共存してしまい、肝心のレコードレベルの確認が逆にしにくいという側面があります。
具体例
PARENTGROUPVAL を使った場合は、グルーピングで2つ以上の選択肢を分けることになります。
例えば、架電業務で「通電」と「それ以外」の割合を出したい場合。マネージャーが通電率の低い担当者に注目したとき、次に見たいのは「通電したケースの詳細」と「不在だったケースの違い」ではないでしょうか?
このとき、バケット項目と PARENTGROUPVAL 関数を使ったレポートであれば、自然にその流れに向かえます。
一方、行レベル数式を使って「通電した場合だけ 1 を表示するフラグ」を作ったとすると、1 と 0 の値でグルーピングしてまで分析しようとは思わないはずです(見た目も微妙です)。
その結果、通電と不在の違いを掘り下げるという目的が果たせず、「Salesforceは使いづらい」という印象だけが残るかもしれません。
こうした点から、行レベル数式の便利さは認めつつも、昔からある PARENTGROUPVAL に沿った集計レポートを私は推奨しています。
結論:きちんとした運用設計を
「使いやすいように」工夫するのは大切ですが、それが「後からわかりづらくなる」「運用が破綻する」リスクを増やすのであれば本末転倒です。
見た目が少し不格好でも、使う人のことを本当に考えるのであれば、設計に則った正攻法を選ぶべきだと考えます。