今回はあまり知られていないが、覚えておくと実務で便利なIFNULL関数について解説したいと思う。
IFNULL関数とは?
IFNULL関数は「対象のフィールドにNULLがあった場合のみ、指定した値を表示してくれる」関数だ。
CASE関数やIIF関数と同じ論理関数の1つだが、あまり馴染みのない人も多いと思う。
サンプルスーパーストアのデータを使用した例で、IFNULL関数がどんな働きをするのかを確認してみたいと思う。
下記は注文に関するオーダーIdと返品があったオーダーidを表示しているが、「オーダーId(返品)」フィールドのデータにはNULLが多数表示されている。
この「オーダーId(返品)」フィールドにIFNULL関数を下記のような計算式で使用すると、NULLの値のみが不明に切り替わる。
このようにIFNULL関数は対象のフィールドの中で、値がなく、NULLと表示されてしまっているデータを指定の値に置き換えることが出来る。
例えば、ダッシュボードでフィルターをドロップダウンで表示させたときにNULLが表示されていると、あまりデータに詳しくない人から
「NULLって何なの?」
と質問を受けることがよくある。
そういう無駄なやり取りを減らすために「NULL」を「不明」などの値に置き換えてわかりやすくするためなどにIFNULL関数を利用したりする。
IFNULL関数の使用方法
IFNULL関数の使用方法は下記の通りだ。
上図のように、IFNULL関数では「NULL以外の場合に表示させたいフィールド」を最初に記載し、「値がNULLの場合に表示させたいフィールドもしくは固定値」を2番目に記載する。
例えば、先ほどの例に挙げた注文に関するオーダーIdと返品があったオーダーidで見てみたいと思う。
実際の表示では下記のようになる。
上図を見ていただくとわかる通り、NULLの場合は値が「不明」に置き換わり、NULL以外の場合はそのままオーダーId(返品)のデータが表示されている。
IFNULL関数はこのようにNULLの値のみを他の表示にしたい時に非常に便利だ。
上記は[オーダーId(返品)]のデータ型が文字列だったため、値がNULLだった場合に表示させる値も文字列(”不明”や”0”)である必要があったが、対象のフィールドのデータ型が整数だった場合は下記のように表現することも可能だ。
また、今までの例は全てNULLだった場合に「不明」や「0」などの固定値を表示させていたが、NULLだった場合にフィールドを指定することも可能だ。
例えば、[オーダーId(返品)]の値がNULLだった場合は[オーダーId]を表示させる、というような感じだ。
IFNULL関数の活用シーン
このようにIFNULL関数はNULLの値を他の値や空文字に置き換えたい時に非常に便利だ。
IFNULL関数の活用シーンは例えば、下記などが挙げられる。
- ユーザーアンケートデータで性別がNULLの場合に「不明」と表示させる
- 商品サブカテゴリの値にNULLがあれば、商品カテゴリの値を表示させる
- 表のNULLを空文字に変換して表を見やすくする
NULLという表示だけではデータにあまり詳しくないユーザーがダッシュボード等を使う時にスムーズに使う妨げになることが多い。
そのため、IFNULL関数等を使用してNULLという値をユーザーが意識しなくて済むように工夫するのは実務上は結構大事なポイントだ。
まとめ
IFNULL関数はISNULL関数などとも混同しやすい。
どういう場面でどういう関数を使用すると便利なのかを整理しておくと一層Tableauの活用が進むはずだ。
Tableauの他の関数は下記にまとめているので、活用してみてもらえると嬉しい。