こんにちは!
分析官の望月です。
条件によって処理を分岐させたい時、Tableauでは”IF”と類似した”IIF”という論理関数が用意されています。ネットでIIFについて調べてみると下記2つの計算式を同義であるように説明している記事をちらほら見かけますが、実は異なる結果になるケースがあります。
IF <条件式> THEN <結果1>
ELSE <結果2>
END
IIF(<条件式>, <結果1>, <結果2>)
本記事ではどのような場合に異なる結果になるのかを説明したうえで、IIFの正しい使い方をご紹介します。
出力が異なるケース
ズバリ、「NULL > 0」のように「条件式の真偽が判定できない場合」に返り値が異なります。IFの場合、条件式の真偽が判定できない場合もELSEの後に入力した結果が返ってくるため、下記計算式の返り値は”F”となります。
IF NULL > 0 THEN "T"
ELSE "F"
END
一方IIFの場合、条件式の真偽が判定できない場合はNULLが返ってくるので、下記計算式の返り値は”F”ではなくNULLとなります。
IIF(NULL > 0, "T", "F")
実はIIFは第4引数を指定することができます。第4引数を指定することで条件式の真偽が判定できない、つまり「条件式の返り値がNULLになった場合」の返り値を指定することができます。下記計算式であれば第4引数に”U”を指定しているので、返り値は”U”となります。
IIF(NULL > 0, "T", "F", "U")
まとめ
上記の通り、NULLが存在する項目を用いて条件分岐させる場合は注意が必要になります。用法を守って正しくお使いください!
参考
https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_logical.htm