【Tableau入門③】文字列関数の使い方をわかりやすく解説!

文字列関数をまとめて学ぼう!

文字列関数:ある特定の文字列から一部を抽出したり変換できる関数

下記を参考にしています。

目次

文字列関数の基礎編

STR(ストリング)…書式を文字に変える
LEN(レン)…文字数を数える
LEFT(レフト)…左からn文字分を返す
RIGHT(ライト)…右からn文字分を返す
MID(ミッド)…指定位置からn文字分を返す
REPLACE…指定した条件の文字を指定の文字列に変換する
FIND(ファインド)…指定文字の位置を返す
SPLIT (スプリット) …文字列を分割する

STR(ストリング)…書式を文字に変える

STRは型変換関数で、書式を文字に変えてくれます。
エスティーアールとも呼べますが、基本はストリングです。
一般的に文字列を表す”string“を略したものとなります。

STR([フィールド名])

↓のように使ってみると

STR(YEAR(TODAY()))+STR(MONTH(TODAY()))

“20221”という文字列で表示されます。
STRをとって

YEAR(TODAY())+MONTH(TODAY())

↑のように計算式を変えると
2023になります。
これはyearが2022でmonthが1なのでそのまま足し算をしてしまっているからです。
単純にくっつけたい場合は文字に置き換えましょう!

文字列および整数値を追加できません

文字列および整数値を追加できません
↑のようなエラーが出たら、文字と数字を無理やり合成しようとしているのかもしれません。
文字で統一でいいならSTR、数字で統一ならINTをつけましょう!

LEN(レン)…文字数を数える

LENは文字数を数えてくれます。

LEN([フィールド名])

例えば

LEN("こんにちわ")

↑のように書くと
5という数値を返してくれます。

ごり子

単独で使うことはほぼないね!

次のLEFTやSPLITなんかと組み合わせることが多いです。

LEFT(レフト)…左からn文字分を返す

LEFTはその名の通り、左から指定数分文字を返します。

LEFT( [フィールド名] , 文字数)

例えば

LEFT("こんにちわ", 2) 

↑のように書くと
“こん”と表示されます。
左から2文字分というわけです。

メールアドレスを分解、都道府県を分解できる

メールアドレス
○○○@xxx.ne.jp
↑のようなアドレスが複数ある場合に○○○の部分が不明だとします。

LEFT([アドレス],LEN([アドレス])-10)

LENでアドレスの文字数を判別します。
そこからドメイン部分である10文字(@よりあとの部分の数)を引くと、左から見た必要文字数が判別できます。

もしくはFINDで位置を検索もできます。

LEFT([アドレス],FIND([アドレス],"@")-1)

都道府県
メアドと一緒です。
こっちは1文字だけ引けばOKです。

LEFT([都道府県],LEN([都道府県])-1)

RIGHT(ライト)…右からn文字分を返す

LEFTの逆、右から指定数分文字を返します。

RIGHT( [フィールド名] , 文字数)

MID(ミッド)…指定位置からn文字分を返す

MIDはスタート位置を指定できます。

MID([フィールド名], スタート位置, 文字数)

MID("こんにちわ", 2, 3)

↑のように書くと”んにち”と表示されます。

REPLACE(リプレイス)…指定した条件の文字を指定の文字列に変換する

リプレイスは文字を置き換えることができます。

REPLACE([フィールド名], 置き換え前文字, 置き換え後文字)

こんにちわをこんばんわに変えてみましょう!

REPLACE("こんにちわ", "にちわ", "ばんわ")

ドメインの一括変換とかに使える

○○○@xxx.ne.jp
@以下を@yyy.ne.jpに変えたいとします。

REPLACE([アドレス], RIGHT( [アドレス] ,10) , "@yyy.ne.jp")

RIGHTでドメインを一括指定して変えています。
xxx→yyyだけの変換でもいいんですが、ユーザ名のところにxxxを使っている可能性もあるので↑のようにしています。

郵便番号や電話番号からハイフンを取り除く

指定文字を取り除くこともできます。

REPLACE([郵便番号], "-", "")

これで-は空白になります。

FIND(ファインド)…指定文字の位置を返す

指定した文字の位置を返してくれます。

FIND ( [フィールド名], 指定文字,スタート位置 )
※スタート位置は省いてもOK!

ドメイン分解とかで使うとすると

LEFT([アドレス],FIND([アドレス],"@)-1)

-1しているのはFINDが@の位置まで取得してしまうからです。
@より後はいらないので、@の一個前までを指定する必要があるわけです。

SPLIT (スプリット) …文字列を分割する

SPLITは文字列を分割してくれます。
※区切り文字は消えます

SPLIT([フィールド名],区切り文字,取得したい場所)

区切り文字というのは、区切る基準になるものです。
○○○@xxx.ne.jp
アドレスであれば@が適当でしょう。
取得したい場所は、区切った後、どっちを取得するかを選ぶ場所です。

SPLIT([アドレス],"@",1)

↑のように書くと
○○○とxxx.ne.jpの2つに分解されます。
取得したいのが前者なら1、後者なら2としましょう。

ごり子

分解数が多くなれば選択肢は増えるから、3とか4もありえるよ!

名前を分解する

山田 太郎
↑のように名前の間にスペースなど区切りが入っている場合は、分解できます。

苗字

SPLIT([フルネーム]," ",1)

名前

SPLIT([フルネーム]," ",2)

続く

今回は文字列関数でした。
不明点や間違いなどありましたらコメントにお願いします。

次回は日付関数です!

おすすめTableau教材

著:小野泰輔, 著:清水隆介, 著:前田周輝, 著:三好淳一, 著:山口将央
¥2,376 (2021/12/11 12:35時点 | Amazon調べ)
ごり子

読んでくれてありがとう!

コメント

コメントする

目次
閉じる