Tableau 質問メモ 表計算のnullや空白の対応

勤務中によく質問される、メジャーの空白やnullの時の対応方法

Tableauの表計算で0が表示されない

私の職場で去年、一番多かった質問が
Tableauで表計算を作る際メジャーにデータが無いと空白になるが、空白部分に0を表示させる方法を教えて」
でした。
👇こんな感じ

上記の表で、阿久津大輝さんは1月~7月まで何もデータ無いので表示されません。

こんな時
「明日の営業会議で使うこの表をこのままプロジェクターで映すと、なんで「0」が表示されないのか3人に1人が聞いてくるから、面倒なんだ!」などと言われます。


👇要するにこんな表示にしたいんですよね!👇

「データが無いから空白なんだよ、「0」は空白じゃないんだ、「0」は「0」というデータなんだ」と心の中でつぶやいてもTableauの評判が悪くなるだけなので、ここは解決策を提示しないといけません。

こんな時、私が一番良く使うのは「ZN(LOOKUP())」です

このオプションでは、NULL、欠落しているデータ、またはフィルターで除外されたデータがゼロで置換されます。by Tableau

計算フィールドに次のように入力し新しいメジャーを作成します。

ZN(LOOKUP(SUM([集計したいメジャー]),0))

ZN&LOOKUP関数の合せ技テクニックで0表示を実現します。
それぞれの関数の公式説明は下記の通りです。

ZN関数
式が NULL でない場合は式を返し、それ以外は 0 を返します。NULL 値の代わりにゼロ値を使用するには、この関数を使用してください

https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_number.htm

LOOKUP関数

現在の行からの相対オフセットとして指定されたターゲット行にある式の値を返します。パーティション内の最初/最後の行に相対的なターゲットには、オフセット定義の一部として FIRST() + n と LAST() - n を使用してください。offset を省略した場合は、比較対象行をフィールド メニューで設定できます。この関数は、ターゲット行を特定できない場合は、NULL を返します。

https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_tablecalculation.htm

ZNはNULLだと0を返してくれる関数ですが
LOOKUPはちょっとわかりにくいかもですね。
現在の行から指定の数字分だけ移動した値を
引っ張ってきて計算してくれるので
Zチャートなどで使われます。

今回の場合は、移動は0⇒つまり現在の行の値を持ってきます。
ZN(LOOKUP(SUM([集計したいメジャー]),0))

そして、現在の行はnullだったり0だったりするので、
nullを返します
さらに、LOOKUP全体を
ZN関数で囲っていますので

結論 0が返って来るわけです。


本質的には、表示としては正解では無いのでは、、、
空白は0じゃない、、、思わないでも無いのですが、
ニーズが高い質問だったので、まとめてみました。

実際の操作動画はこちら
https://youtu.be/FQOQlef9_lg


この記事が気に入ったらサポートをしてみませんか?