Tableau REGEXP_MATCH関数とは?完全一致や部分一致を網羅した正規表現入門

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

コメントする

目次