REGEXP_MATCH
関数は、Tableauにおける正規表現(Regex)による文字列判定を行うための関数です。特定のパターンと一致するかどうかを判定し、条件分岐やデータ分類に活用できます。
目次
どんなときに使うのか?
- 文字列に特定の語句が含まれているかを判定したいとき
- 複数のパターンにマッチするかをスマートに記述したいとき
CONTAINS()
やSTARTSWITH()
では冗長になる場面で、一括で処理したいとき- **正確な一致や形式チェック(完全一致・フォーマット検証など)**を行いたいとき
REGEXP_MATCHの基本構文
REGEXP_MATCH( [フィールド], "正規表現パターン" )
- [フィールド]:対象となる文字列フィールド
- 正規表現パターン:Regex記法で書かれたマッチ条件
- 返り値:一致すれば
TRUE
、しなければFALSE
書き換え例:CONTAINSの代替
たとえば、以下のような長い CONTAINS()
条件式:
IF CONTAINS([商品名], "りんご")
OR CONTAINS([商品名], "みかん")
OR CONTAINS([商品名], "ぶどう")
THEN "果物"
ELSE "その他"
END
これを REGEXP_MATCH
に置き換えると、次のようにシンプルになります:
IF REGEXP_MATCH([商品名], "りんご|みかん|ぶどう") THEN "果物"
ELSE "その他"
END
完全一致をさせる方法
「^」は行頭、「$」は行末を示す記号です。
^abc$
→ 「abc」のみを一致と判定^abc
→ 「abc」から始まる文字列に一致abc$
→ 「abc」で終わる文字列に一致
例:完全一致
REGEXP_MATCH([カテゴリ], "^果物$|^野菜$|^飲料$")
これは、「果物」「野菜」「飲料」のみを一致と見なします。
実務でよく使う正規表現パターン集
アルファベットを含むか?
REGEXP_MATCH([コード], "[A-Za-z]")
数字を含むか?
REGEXP_MATCH([コード], "[0-9]")
特定の文字で始まるか?(例:「あ」で始まる)
REGEXP_MATCH([名前], "^あ")
特定の文字で始まり、特定の文字で終わる(例:「あ」で始まり「お」で終わる)
REGEXP_MATCH([名前], "^あ.*お$")
よくある質問(FAQ)
Q. CONTAINS()
との違いは?
CONTAINS()
は単一キーワード検索に最適。REGEXP_MATCH()
は複数条件や複雑なパターンをまとめて書ける点が優秀。
Q. 大文字・小文字を無視したいときは?
REGEXP_MATCH([入力], "(?i)^abc$") // abc, ABC, AbC などに一致
(?i)
を先頭につけると、大文字・小文字を区別しません。
実務で役立つユースケース例(複雑ケース含む)
1. 商品カテゴリ判定の簡略化
- 「食品」「飲料」「菓子」など複数パターンを1行でチェック
2. 顧客コードの形式検証(例:A1234形式)
REGEXP_MATCH([顧客ID], "^A[0-9]{4}$")
3. 社内メールアドレス判定(例:@example.co.jp のみ)
REGEXP_MATCH([メール], "@example\\.co\\.jp$")
4. 郵便番号フォーマット判定(例:123-4567)
REGEXP_MATCH([郵便番号], "^[0-9]{3}-[0-9]{4}$")
5. 数字のみのIDかをチェック(先頭に0を含む可能性あり)
REGEXP_MATCH([ID], "^[0-9]+$")
6. CSV入力の行末ミス検出(例:カンマで終わってしまっている)
REGEXP_MATCH([入力行], ",$")
正規表現の学習リソース
Tableau公式:
Tableau 関数リファレンス(外部リンク)
→ Tableauで使える関数全般、REGEXP_MATCHも記載。
世界一わかりやすい正規表現入門(別記事)
→ 「^」「$」「|」「[]」など基本の記号を、初心者向けに実例付きでわかりやすく解説。
まとめ
REGEXP_MATCH
は、複雑な条件判定をシンプルに書きたいときの必須関数です。複数の CONTAINS()
をつなげていた処理も、一行でまとめることができます。
Tableauを使うすべての現場で、一度は使うことになる機能と言っても過言ではありません。完全一致も、部分一致も、複雑なパターンも、これ1つで網羅可能。
Comment