データの中には、ハイフンやスペースなどで区切られた文字列が多く存在する。
例えば「注文ID」「ユーザーID」「製品名」など、必要な部分だけを取り出したい場面は非常に多い。
そんな時に活躍するのが SPLIT関数 である。
SPLIT関数を使えば、区切り文字を指定するだけで値から必要な文字列を簡単に抽出できる。
実務でも頻出の便利関数なので、ぜひこの機会に使い方をマスターしておきたい。
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関数は実務でも比較的よく使う関数なので、ぜひ使い方をマスターして欲しい。
- SPLIT関数は文字列を区切り文字で分割し、任意の部分を取得する関数
- 区切り文字(例:ハイフン、カンマ)を指定し、取得したい分割位置を選ぶだけで使える
- 名前、注文ID、バージョン情報などのデータ分割に便利
- 区切り文字が統一されていれば、文字数がバラバラでも利用可能(MID関数との違い)
- MID関数は固定文字数のデータに、SPLIT関数はルール化された区切りに最適
MID関数やLEFT関数との違いも意識しながら、SPLIT関数を使いこなせるようになると文字列を扱う際に武器になるはずだ。
他の文字列関数は下記で紹介しているのでぜひ読んでみてほしい!