Tableau(タブロー) 正規表現(まとめ)
Tableau(タブロー) 正規表現(まとめ)
はじめに
新規講座開催のお知らせ
Tableauと正規表現
正規表現とは
検索あるいは置換したい文字列を効率的に探すための特殊文字(メタ文字)を指します。
Tableau(タブロー)でも、この正規表現を利用可能とする関数が用意されております。特に、計算式作成中のプレビュー機能が優れており、正規表現を書きながら結果を確認してダメならまた調整ということが瞬時に実行可能です。また、全文一致(ワイルドカード)を明示しなくても処理される点もとても効率的です。Googleデータポータル の正規表現が使いづらい点はこの差にあると考えます。
Tableauで用意されている具体的な正規表現は下記の通りです。
本日は、そのうち、かなりよく使うREGEXP_MATCH, REGEXP_REPLACE を説明します。
REGEXP_EXTRACT, REGEXP_EXTRACT_NTH, REGEXP_MATCH, REGEXP_REPLACE
REGEXP_MATCH
書式:REGEXP_MATCH(“ディメンション(文字列型)”,”正規表現”)
戻値:TRUE / FALSE (ブーリアン)
この関数は、ほとんどの場合、論理関数(IF, IIF, CASE)と併用すると思います。関数の戻り値はTRUE or FALSE のブーリアンです。
ここでは、IF式と併用した場合の書式例を見てみます。この例で、正規表現自体は各行目の | がそれに該当します。
IF REGEXP_MATCH([製品名],”Accos|Accorss|アクオス”) THEN “アクオスグループ”
ELSEIF REGEXP_MATCH([製品名],”HP|ヒューレットパッカード|ヒューレット”) THEN “ヒューレットパッカード”
ELSEIF REGEXP_MATCH([製品名],”Safco|SAFCO”) THEN “サフコ製品”
ELSE “その他”
END
REGEXP_REPLACE
書式:REGEXP_REPLACE(“ディメンション(文字列型)”,”正規表現”,”置換文字列”)
戻値 置換された文字列
この関数は、ディメンション(文字列型)に対して、正規表現パターンと一致する文字列があれば置換文字列に置き換えて返却します。
この例で、正規表現自体は各行目の | がそれに該当します。
REGEXP_REPLACE([製品名],”Safco|SAFCO”,”サフコ”)
参考までに、正規表現を使わない場合の代替オプションは下記です。
REPLACE(UPPER([製品名]),”SAFCO”,”サフコ”)
実践編
ここに、以前、統計分析でご発注いただいた時に使用した過去アンケート結果の一項目を用意しております。ご覧の通り、好きな球団名のアンケート項目がフリー記述式となってしまっており、表記揺れがかなり発生しております。明らかにふざけているレコードは除外しながら、いわゆる”巨人軍”の表記揺れをなんとか正規化する必要があります。
Tableauを使って考えられるアプローチとしては、①グループ作成機能を使う、②REGEXP_MATCH関数と正規表現|(パイプ)を使ってグルーピングする、③グルーピングではなく置換してしまう、が考えられます。
①グループ作成機能
こちらは、下記記事をご参考くださいませ。
このやり方の場合、「その他」でグルーピングできるチェックボックスを活用すると便利です。
②REGEXP_MATCH関数のやり方
IIF(REGEXP_MATCH([あなたの好きなプロ野球セリーグ球団名],”^巨人$|ジャイアンツ”),”巨人軍”,”その他”)
③グルーピングではなく置換してしまう
巨人グループをすべて、”巨人”に置換してしまう方法もあります。
REGEXP_REPLACE([あなたの好きなプロ野球セリーグ球団名],”^巨人$|(東京)?ジャイアンツ”,”巨人”)
あとは正規表現のスキルの問題です。
絶対に覚えておくべき正規表現13種類
- ^www 先頭がwで始まり…。
- html$ レコードのお尻がlで終わる。
- black|white 白かまたは黒
- (black|white)?cat 白猫か、黒猫かまたは猫
- (sp)?/shop/cart.php sp/shop/cart.phpか、/shop/cart.php
- w{3} wを三回繰り返す(草生える)
- [あ-ん] あ〜んの1文字分に相当
- \ 正規表現を文字列として扱うためのエスケープ処理
- \d 数字1文字に相当
- \w 英数字1文字に相当
- \s 半角スペースに相当
- . 任意の1文字
- .* 任意の1文字が0個か、1個か、2個以上ある(つまり、全部に一致する)
- .+ 任意の1文字が1個か、2個以上ある
さらに突っ込んで学習をしたい方は、ぜひ、弊社の正規表現講座へご参加くださいませ!
まとめ
本日は、Tableau(タブロー)の正規表現関数と活用例についてまとめてみました。これを機に、積極的にこのREGEXP_MATCH、REGEXP_REPLACE正規表現関数をご活用いただけると幸いです。正規表現は自己学習は厳しいと思いますが、弊社の正規表現講座(3.0h)を受講すれば絶対に明日から使えるようになります。ご受講もあわせて、ぜひ、ご検討ください!
コメントを投稿するにはログインしてください。