今回はISNULL関数について紹介したいと思う。
ISNULL関数とは?
ISNULL関数は値がNULL(値がない状態)かどうかを判定して、①NULLの場合はtrue、②値が入っている場合(つまりNULLでない時)はfalseを返してくれる関数だ。
例えば、サンプルスーパーストアの出荷日フィールド内にデータが入っていない行を把握したいという場合にISNULL関数を使用すれば、下記のようにNULLの行だけ真(true)という結果を返してくれる。
このISNULL関数を使えば、「AカラムがNULLでBカラム=~の時はCを表示させる」というようなIF文での条件分岐(場合分け)を簡単に実現することが出来る
実務においても、ISNULL関数は上記のようなIF関数での条件分岐のために、他の条件と組み合わせて使うことが多く、覚えておくとかなり便利な関数だ。
ISNULL関数の使用方法
ISNULL関数の使用方法は下記の通りだ
非常にシンプルで値がNULLかどうかを調べたいフィールド(出荷日とか住所とか)をISNULLの後の()内に入れるだけで判定してくれる。
先ほどの出荷日フィールドにデータが入っていない行を把握したい場合は具体的に下記のように指定すればOKだ。
上記のように計算フィールドを作成すると下記のように結果が表示される。
上記を見るとオーダー日のデータはあるのに、出荷日が記録されていないデータがある。
- 「これはオーダーされたけど出荷されていないミスなのか、単純に記録されていないだけなのか?」
- 「キャンセルされたのか?」
とデータの詳細を確認するきっかけにすることができる。
ISNULL関数の結果が真(true)のデータのみにフィルターで絞り込めば、データとしておかしい状態のものに絞り込んで分析をすることが可能だ。
実際はこんなにシンプルに使うことはあまりないが、Tableauでのデータの検証(数値が一致しない原因調査)などの時にもめちゃくちゃ役立つのでぜひ覚えておいてほしい。
ISNULLとIFNULLの違い
ISNULL関数はIFNULL関数と混同する人も多いと思う。
確かに名称は似ているが機能や使いどころは異なるので整理が必要だ。
ISNULL関数はあるフィールドの行の中でNULLの値があるかどうかを判別したい時や、IF文で「NULLだった場合はA、そうでない場合はB」という形で条件分岐させたい時に使用する。
一方でIFNULL関数は「対象のフィールドにNULLがあった場合のみ、指定した値を表示してくれる」関数だ。
例えば、下記のように「オーダーId(返品)フィールドの各行の中にNULLがあった場合は「不明」と表示させたい」などという時に便利である。
同じフィールドにISNULL関数を適用すると下記用にNULLだった場合は「真」、値が入っている場合は「偽」という形で表示される。
ISNULL関数とIFNULL関数の違いがおわかりいただけただろうか?
IFNULL関数については下記でまとめているので是非参考にして欲しい。
まとめ
今回は実務でよく使うISNULL関数をご紹介した。
IFNULL関数と合わせて覚えてもらうと頭の整理がしやすいと思うのでオススメだ。
前述したが、ISNULL関数はIF文の条件分岐で非常によく使うので、ぜひ覚えておいてほしい。
IF文の詳細は下記を参考にまとめている。
Tableauの他の関数は下記にまとめているので、活用してみてもらえると嬉しい。