TableauのCONTAINS
関数は、文字列の中に特定の語句が含まれているかどうかをチェックできる便利な関数です。検索・分類・フィルタ処理など、さまざまな場面で活用できます。
目次
CONTAINS関数とは?
CONTAINS(文字列, 検索語)
の形式で、指定された文字列に特定の語句が含まれているかどうかを判定し、TRUE
か FALSE
を返します。
CONTAINS("東京都", "都") // TRUE
まるでワイルドカードのように使うことができ、文字列の部分一致チェックが可能です。
IF関数との組み合わせ例(Tableau if contains)
CONTAINS
は単体でも使えますが、IF
関数と組み合わせることで、より柔軟な処理ができます。
IF CONTAINS("東京都", "都") THEN "都を含む" ELSE "都を含まない" END
フィールドに対して使う:ディメンションやメジャーの活用
文字列フィールドにも同じように使えます。
IF CONTAINS([都道府県], "都") THEN "都を含む" ELSE "都を含まない" END
フィールド × フィールドの比較も可能
検索語を別フィールドにしても動作します。
IF CONTAINS([都道府県], [都判定]) THEN "都を含む" ELSE "都を含まない" END
ここでは [都判定]
が例えば “都” を含む単一文字列であることを想定しています。
複数語句を含むかをチェックしたい場合(Tableau contains 複数条件)
複数の条件をチェックしたい場合は、OR
またはAND
で複合条件を作ります。
IF CONTAINS([地域], "関東") OR CONTAINS([地域], "首都") THEN "主要地域" ELSE "その他" END
IF CONTAINS([説明], "東京") AND CONTAINS([説明], "都心") THEN "都心関連" ELSE "その他" END
CASE関数との併用不可?エラー例と回避策
CASE
関数ではCONTAINS
のような論理式(TRUE/FALSEを返す関数)をそのまま使うことはできません。そのため、以下のように書くとエラーになります:
// NG例:CASE内で論理式を使用(エラー)
CASE CONTAINS([地域], "関東")
WHEN TRUE THEN "関東圏"
ELSE "その他"
END
このような場合は、先にIF文で判定し、その結果を文字列で返しておくことで回避できます。
// OK例:IFで変換してからCASE的に扱う
IF CONTAINS([地域], "関東") THEN "関東圏" ELSE "その他" END
Tableauでは、CASE WHEN CONTAINS()
のような構文はサポートされていないため、必ずIF文で構造化しましょう。
よくある用途・実務例(Tableau 文字列 含む)
- 商品名や説明文に特定キーワードが含まれているかを分類(例:”高級”含む)
- 都道府県や地域名から、「都道府県区分」「主要地域」などの分類を自動生成
- 住所から都道府県名を抽出してグルーピング(Tableau 計算フィールド 文字列 含む)
- 業種名などのフリーテキストから重要語の有無を判定
注意点まとめ
CONTAINS
は完全一致ではなく部分一致(サブストリング)- 大文字・小文字は区別しません(”tokyo” でも “Tokyo” にマッチ)
- 数値には使えません。“で文字列に変換してから適用する必要があります
- Tableau CASE WHEN CONTAINS のような書き方はできません
まとめ
項目 | 内容 |
---|---|
関数名 | CONTAINS |
判定対象 | 文字列フィールド、リテラル文字列など |
戻り値 | TRUE または FALSE |
よく使う場面 | フリーテキスト検索、部分一致フィルタなど |
複数条件に対応 | AND / OR で対応可能 |
CASEとの併用 | 不可(IFで代替処理) |
CONTAINS
関数は、Tableauでの文字列操作・フィルタ・分類において非常に柔軟かつパワフルな関数です。特に部分一致での分類や検索条件構築の際には、if contains tableau や tableau 文字列 含むといった検索ニーズに応えるためにも活用価値は非常に高いです。
検索キーワードに応じた柔軟な条件設定に、ぜひ活用してみてください。
Comment