![見出し画像](https://assets.st-note.com/production/uploads/images/92737509/rectangle_large_type_2_79fc2fac278278e98041fd43de8a49e5.jpeg?width=1200)
文字列と数値が混在したセルで数値だけをTableauデータソースの操作から削除する方法
文字列と数値が入り乱れるフィールドをもつデータにおいて、「文字列だけ残す(数値のみ控除する)」方法を、Tableauデータソースを使用して説明しています。
どんな状況でしょうか?
このようなフィールドがあるとします。「岡山1」や「大阪14」など、[文字列+数値]という規則性があると思いきや、「単独」という、それに類さないデータも混ざっています。
![](https://assets.st-note.com/img/1670310119121-aiyemMxk2F.png)
計算フィールドを開く
対象の列を右クリック→「計算フィールドの作成」の順に進みます
![](https://assets.st-note.com/img/1670311289371-H4KmHVOyNE.png)
次の数式を入力します
![](https://assets.st-note.com/img/1670311461771-JqbqHBpRev.png?width=1200)
REGEXP_REPLACE([フィールド名]+'1',REGEXP_EXTRACT([フィールド名]+'1', '.+?(\d+)'),'')
結果
![](https://assets.st-note.com/img/1670311542641-Jdkjs0qY8F.png)
数式の意味(興味のある方向け)
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を返してしまうからです。
参考
今日はここまで。お読みいただき、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?