【折れ線グラフが途切れる】  集計対象範囲にレコードがない場合の対策

By |6月 10, 2015|salesforce, |


こんにちは、kubottyです。

皆さんはレポートで、
どのグラフを使って作られることが多いでしょうか。

ちなみに私は横棒が多いタイプです。

今回は折れ線グラフでのお話。

あるレポートをご覧ください。(下記)
2月の表示がおかしいですね。線が途切れています。
1月は点で、2月には線が無く、3月からはまた線が続いています。

集計では数字は”0”を表していますが、
レコード上で集計している項目に”0”という値が入っている訳ではなく、
レコード自体が存在せずに”0”と表示されています。

それを折れ線グラフで表示すると、線が途切れてしまいます。

ではどういうことか。ヘルプを見てみましょう。
【折れ線グラフ】
『データセットの途中に欠損値が含まれる場合、
Salesforce では折れ線内に空白が表示されます。』

レコードが無いので空白となる。ごもっともですね。
「空白は空白として扱われ、”0”とはならない」ということ。

ですが、運用では線が途切れている折れ線グラフはしまりの無いものです。

希望は下記(グラフの点線)が理想です。
「空白は”0”として表示して欲しい」

なんとか出来ないものか。

レポートで悩むときには「カスタム集計項目」を調べるようにしています。
解決の糸口があるかも、と。

そうそうPARENTGROUPVAL・PREVGROUPVALがありました。

この方たちは(サマリーまたはマトリックスの時)
「指定したグルーピングで集計を掛けて値を返して」くれます。

あくまでグルーピング指定で集計をするので、
グルーピング内でレコードが有ろうと無かろうと、
値が返せるかも。

今回のレポートはマトリックスなので、PARENTGROUPVALを使用します。

新規カスタム集計項目を作成し、
グルーピングを指定し、関数を挿入。
数式はこんな感じです。
 PARENTGROUPVAL(数量:SUM,部署,出荷日)

さぁレポートを見てみましょう。
綺麗な折れ線グラフになりましたね。

グルーピングで集計した結果は、
「集計した範囲のレコードに空白があっても、”0”として集計する」
ということですね。

ちなみにカスタム集計項目にはIF文があるので、
「合計値がNull(空白)なら別の値を返せ」を試してみましたが、
そもそもレコードが無いので答えは返ってきません。

今回の様な「集計対象範囲にレコードが存在しない場合に集計を行う」ときは、
一度グルーピング集計(PARENTGROUPVAL・PREVGROUPVAL)を試してみてください。

標準機能はまだまだ勉強が必要です。

About kubotty

セールスフォースの活用をもっと広く社会に広めたいと考えている、自称ノンコーディングデベロッパー。 標準機能の可能性を追求したい!