見出し画像

【Tableau】IF、IIF、CASEの違いとは?

皆さんは、IF、IIF、CASEといった論理関数の使い方や特徴をしっかり理解していますか?私は、KTさんの動画でIIFが登場したとき、「なんだこの関数は?」と疑問に思ったのを覚えています。
今回は、この3つの論理関数について整理しながら、記事で分かりやすくまとめていきたいと思います。


結論

時間がない人のために、初めにそれぞれの特徴をまとめておきます。

それぞれの関数ごとに、特徴をお伝えしていきます。

IF

IFは、条件を満たす場合に特定の処理を実行する基本的な論理関数です。
以下のように、複数の条件を入れ子構造で書くことができます。

IF <条件式> THEN <値>
ELSEIF <条件式> THEN <値>
ELSE <値>
END

特徴は以下の通りです。

  • 柔軟性が高く、複数の条件をチェックできる。

  • 条件が複雑な場合や、条件式がAND/ORでつながる場合に便利。

サンプル - スーパーストアのデータを使って具体例を紹介します。

利益区分を判断する計算フィールドを作成
都道府県別の利益区分テーブルを作成

利益区分を条件分岐させることができました。

IIF

IIFは、IFの簡略版の論理関数です。
1つの条件式に基づいて、条件が真の場合と偽の場合の値を指定します。

IIF(<条件式>, <真の場合の値>, <偽の場合の値>, [NULLの場合の値])

特徴は以下の通りです。

  • シンプルな条件分岐に向いている(1つの条件のみ評価する場合)。

  • デフォルトでNULL値も処理可能(4つ目の引数を省略した場合、NULLはそのまま返される)。

同様に具体例を見てみましょう。

利益区分を判断する計算フィールドを作成
都道府県別の利益区分テーブルを作成

こちらも条件分岐させることができました。
特徴でも述べた通り、シンプルな条件分岐向きの関数であるため、IFで条件設定できていた「中収益」がIIFでは条件設定できなくなるというのがポイントです。

CASE

CASEは、条件を値ごとに評価する場合に使用する論理関数です。
IF文よりも特定の値との一致を比較する場合に読みやすい構造になっています。(パラメーター用の計算式を作る場合など)

CASE <式>
    WHEN <値1> THEN <結果1>
    WHEN <値2> THEN <結果2>
    ELSE <デフォルト結果>
END

特徴は以下の通りです。

  • 比較的単純な値の一致条件をチェックする場合に便利。

  • IF文と違い、複雑な論理条件(ANDやORを含む式)は使えない。

  • 値が限定されている場合(カテゴリ分けなど)に適している。

特に3つ目の特徴がポイントだと思います。
こちらも具体例をご覧ください。

主要メーカーを判断する計算フィールドを作成
カテゴリごとの主要メーカーのテーブルを作成

カテゴリごとに主要メーカーを判断させることができました。
IFやIIFと異なり、計算式内の条件が特定の値となっていることが分かったかと思います。

まとめ

簡単にではありますが、論理関数を整理することができました。
個人的には以下のように使い分ければよいかなと感じました。

  • IF:複数の条件を使う場合

  • IIF:単純な条件1つで分岐させる場合

  • CASE:カテゴリ分けが主目的の場合

より詳細な内容を知りたい!という方はTableau公式ページも確認してみてくださいね。


いいなと思ったら応援しよう!