見出し画像

文字列と数値が混在したセルで数値だけをTableauデータソースの操作から削除する方法

文字列と数値が入り乱れるフィールドをもつデータにおいて、「文字列だけ残す(数値のみ控除する)」方法を、Tableauデータソースを使用して説明しています。

どんな状況でしょうか?

このようなフィールドがあるとします。「岡山1」や「大阪14」など、[文字列+数値]という規則性があると思いきや、「単独」という、それに類さないデータも混ざっています。

余計な数値がオジャマですね。

計算フィールドを開く

対象の列を右クリック→「計算フィールドの作成」の順に進みます

次の数式を入力します

※対象のフィールド名が「地域」の場合です。
REGEXP_REPLACE([フィールド名]+'1',REGEXP_EXTRACT([フィールド名]+'1', '.+?(\d+)'),'')

結果

「計算1」というフィールドが作成され、余計な数値がちゃんと消えました!

数式の意味(興味のある方向け)

2つの関数と正規表現を使用しています。

1.REGEXP_EXTRACT(string, pattern)

公式リファレンスでは、「正規表現のパターンと一致する文字列の一部を返します」と説明があります。第1引数のstringには対象の文字列、第2引数のpatternには正規表現のパターンを入力してください。

2.REGEXP_REPLACE(string, pattern, replacement)

公式リファレンスでは、「正規表現のパターンが置換文字列に置き換えられている特定の文字列のコピーを返します」と説明があります。第1引数のstringには対象の文字列、第2引数のpatternには正規表現のパターン、第3引数のreplacementには置換文字列を入力してください。
今回は数値を削除したいので、第3引数はブランク('')でOKです。

3.正規表現

  • . 任意の1文字にヒットします。

  • +? 直前の文字が 1回以上 繰り返す場合にヒットします。

  • \d すべての半角数字です。

  • + 直前のパターンを1回以上繰り返します。

4.その他

数式内で「+'1'」を行っているのは、セル「単独」に数値が含まれていないと、nullを返してしまうからです。

参考

今日はここまで。お読みいただき、ありがとうございました!

いいなと思ったら応援しよう!