結論から言うと、
NULLを計算で使うときは、「比較演算子は使わないんだよ!」って話です。
知っていればそんなの当たり前って感じですが、知らないとやってしまいがち。
例えばこんなの。
Nullが存在する都道府県のデータに対して、以下のようにグループ分けをしたいとします。
[都道府県]がNULLの場合は、0を(下図の赤枠が0)
[都道府県]が”東京都”の場合は、1を(下図の青枠が1)
[都道府県]が”東京都”以外の場合は、2を(下図の枠無しが2)
やってはいけない「==NULL」
さてまずは比較演算子を使って、グループ分けの計算式を作成してみます。
IF [都道府県]==NULL THEN “0”
ELSEIF [都道府県]==’東京都’ THEN “1”
ELSE “2”
END
さて、計算結果を入れてみるとどうでしょう。都道府県がNULLの箇所が「2」になってます。
これは想定外。計算式は上から順に処理されるので、「2」になっているということは
「==NULL」の計算が完全無視されており、最終行のELSEで処理されているようです。
「○○がNULLの場合」という条件式を書きたくて比較演算子を使っても、計算されません。
ではどうするのか?
NULLを処理したいときは論理関数を使う
NULLの論理関数とは、ISNULL関数やIFNULL関数です。
※ISNULLとIFNULLの細かい使用方法はここでは扱わないので、分からない方は調べてみてください。
今回は、ISNULL関数を使います。
IF ISNULL([都道府県]) THEN “0”
ELSEIF [都道府県]==’東京都’ THEN “1”
ELSE “2”
END
今度はうまくいきました。ちゃんと「0」になってる!
ってことで、NULLの計算は「論理計算じゃないと処理しないよ!」
ということを覚えておきましょう!!
Tableauの公式サイトにもしれっと書いてありました……
まさに!!