Tableauでよく使われる関数の1つに「IN関数」があります。
ある値が指定したリストの中に含まれているかどうかを判定し、TRUE
または FALSE
を返すシンプルな論理関数ですが、実務では驚くほど幅広く活用されています。
この記事では、IN関数の使い方から、IF・CASEとの組み合わせ、セット活用までを具体例とともに徹底解説します。
目次
IN関数とは?
IN関数は、指定した値がリストの中に含まれているかどうかを判定する論理関数です。
[項目] IN (値1, 値2, 値3, ...)
- 一致すれば
TRUE
- 含まれていなければ
FALSE
パターン①:リテラル値のリストで判定する
もっとも基本的な使い方です。カンマ区切りで複数の候補値を列挙します。
例1:都道府県が特定のエリアに含まれるかを判定
[都道府県] IN ("東京都", "神奈川県", "埼玉県")
→ 関東三県に属していれば TRUE
、そうでなければ FALSE
例2:価格が特定の金額帯に一致するかを確認
[価格] IN (1000, 1500, 2000)
→ 価格が上記のいずれかに一致するかどうかをチェック
パターン②:セット(Set)を使って判定する
Tableauでは、**Set(集合)**を事前に定義しておき、IN関数で利用することも可能です。
[都道府県] IN [関東地方セット]
このように、あらかじめ作成したSetと比較することで、再利用性が高く、メンテナンスしやすいロジックが構築できます。
セットとINの比較的な使い方
- 単発の分析 →
(値1, 値2, 値3)
のリスト指定 - 汎用的な分類やフィルター → Setを事前に作成してINで判定
パターン③:IF関数と組み合わせて「条件付き集計」へ展開
IN関数単体では「含まれるかどうか」しか判断できませんが、IF関数と組み合わせると、集計や分類に使える強力な条件式になります。
例1:特定の市町村だけカウント
IF [市町村] IN ("福井市", "鯖江市", "大野市") THEN 1 ELSE 0 END
→ 1
が返る行だけを SUM()
で集計すれば、対象市町村の件数をカウント可能
例2:条件付きで売上を集計
IF [カテゴリ] IN ("家具", "家電") THEN [売上] ELSE 0 END
→ 「家具」または「家電」の売上だけを合計したいときに使える
パターン④:CASE関数と組み合わせて分類を簡略化
CASE関数では通常 WHEN 値 THEN ラベル
の形式ですが、IN関数と組み合わせると複数条件を一括で記述できるようになります。
通常のCASE(1対1対応)
CASE [都道府県]
WHEN "東京都" THEN "関東"
WHEN "大阪府" THEN "関西"
END
IN関数を使った応用形
IF [都道府県] IN ("東京都", "神奈川県", "千葉県") THEN "関東"
ELSEIF [都道府県] IN ("大阪府", "兵庫県") THEN "関西"
ELSE "その他"
END
CASEはIN
構文を直接書けないため、IF + INの組み合わせがより柔軟です。
よくあるミス・注意点
- INの比較対象は同じデータ型にすること(文字列なら文字列、数値なら数値)
- CASE関数には直接
IN(...)
は使えない(IFで代用) - NULL値との比較では必ずしも期待通りに動かないことがある(事前にNULL処理を)
IN関数はTableauでの条件分岐・分類の基本
用途 | 使い方 |
---|---|
単純な一致判定 | [カテゴリ] IN ("家具", "家電") |
IFで条件付きカウント | IF [市町村] IN (...) THEN 1 ELSE 0 |
ラベル付け(分類) | IF [都道府県] IN (...) THEN "関東" |
セットで再利用性を高める | [項目] IN [定義済みのセット] |
まとめ
IN関数は、複数条件を簡潔にまとめて扱える強力な構文です。
- リスト指定でも、Setでも、柔軟に対応可能
- IF関数と組み合わせれば、COUNTIFS / SUMIFS的な処理も可能
- CASEでは書けない条件も、IF + INでスマートに記述できる
Tableauで複数条件を効率よく扱いたいなら、IN関数の理解は不可欠です。
Comment