今回は文字列を分割してくれるSPLIT関数について解説したいと思う。
文字列を操作する関数は何個もあるが、個人的にSPLIT関数は実務でそこそこ使う便利な関数なので、使い方を覚えておくのとTableau活用レベルを高めてくれるはずだ。
SPLIT関数とは?
SPLIT関数は対象の文字列を区切り文字(ハイフンとかカンマとか)で分割して、その分割した文字列を取得してくれる関数だ。
例えば、サンプルスーパーストアのオーダーIDを SPLIT関数を使って分割した例が下記だ。
上記例では区切り文字であるー(ハイフン) で分割された「JP」が取得されている。
このようにSPLIT関数は
「この文字列のこの部分が取り出せればいいのに!」
という時に便利な関数だ。
SPLIT関数の使用方法
SPLIT関数の使用方法は下記の通りだ。
最初はどのように指定すればいいかが迷ったり、間違ったりすることも多いと思うが、下記の2つの視点を持つと覚えやすくなると思う。
- どの区切りで分割するか?
- 分割したどのブロックを使いたいのか?
実際にTableauの計算フィールドでSPLIT関数を使って「オーダーId」を分割する例を見てみよう。
上記例の場合、区切り文字はー(ハイフン)だ。ハイフンで区切られた3つのブロックの内、1番目を取得する、という指定をしている。
※ちなみに区切り文字は必ず「" "」もしくは「’ '」で囲う。これを忘れると計算式がエラーになってしまうので要注意だ。
その結果、オーダーIdの先頭のJPという値が取得される。
SPLIT関数はこのような形で使用する。
SPLIT関数の活用シーン
SPLIT関数は下記のようなシーンでよく使われる。
- 名前のデータを半角スペースを区切り文字として、性と名に分けたい時
- ユーザーIDから必要な文字列を取得したい時
- オーダーIDから国に関する文字列を取得したい時
- バージョン情報が記載されたフィールドから、バージョン名だけを取得したい時
などなど、結構いろいろなところで使われている。
ただし、区切り文字が一定のルールに基づいていないと使えないという点は注意が必要だ。
SPLIT関数とMID関数との違い
SPLIT関数によく似た文字列関数でMID関数がある。
SPLIT関数と指定方法は異なるが、下記のような「オーダーId」で指定する場合は大体同じようなことができる。
ただし、MID関数は指定した位置から値を取得する機能があるが、文字数が決まっていないと使えない。
一方、SPLIT関数に関しては文字数がバラバラでも区切り文字が統一されていれば活用可能だ。
例えば、製品名を分割して前半を取り出したい!という時にMID関数だと下記のようになってしまう。
製品名は「Hon」という製品名称の分類と「スツール」という製品名が半角スペースで区切られているが、製品名称の分類は5文字のものもあれば4文字のものもある。そのため、文字数を指定するMID関数の場合だと上記例のように意図と違う文字の部分まで取得されてしまうってことが起こる。
そのため、MID関数は文字数が決まっているフィールドの文字列の取得に向いている。
整理すると下記のように使い分けると良いと思う
- SPLIT関数は文字数が決まっていなく、区切り文字が一定のルールに従っている場合に使う
- MID関数は文字数が決まっている場合に使う
まとめ
SPLIT関数は実務でも比較的よく使う関数なので、ぜひ使い方をマスターして欲しい。
MID関数やLEFT関数との違いも意識しながら、SPLIT関数を使いこなせるようになると文字列を扱う際に武器になるはずだ。
他の文字列関数は下記で紹介しているのでぜひ読んでみてほしい!