今回はMID関数について解説していきたいと思う。
MID関数とは?
MID関数とは対象の文字列データを指定した位置からn文字分取得してくれる関数だ。SPLIT関数やLEFT関数と同じ文字列関数の1つだ。
例えば、サンプルスーパーストアのオーダーIDをMID関数を使用して、オーダーされた年数を取り出した例が下記だ。
MID関数を使用することによってオーダーIdの真ん中の4桁のオーダー年を取得されている。
このようにMID関数は文字数が決まっている文字列データにおいて
「この真ん中の3桁を取り出したい!」
という時に便利な関数だ。
MID関数の使い方
MID関数を使うには下記のポイントを押さえればOKだ。
- どの文字列データを対象とするか?(データ型が文字列型のフィールドでないと使えないので要注意)
- 何文字目から取得したいかのスタート地点を決める?
- スタート地点から何文字分取得するか?(省略可能)
上記3点を下記のように計算フィールドで指定していく。
実際にTableauの計算フィールドでMID関数を使ってオーダーIdから特定の文字数を取得する例を見てみよう。
上記の例の場合は、「オーダーIdの4文字目から4文字分を取得する」という指定をしている。
その結果、下記のようにオーダーIdの真ん中にあるオーダー年を取得することができるのだ。
取得する文字数の指定は省略可能で、その場合は指定した位置から最後の文字まで取得される。
MID関数はこのような形で使用することができる
MID関数の活用シーン
MID関数の下記のシーンでよく活用される。
- ユーザーIDに含まれている会員登録日を取得したい時
- オーダーIDに含まれている商品カテゴリを取得したい時
- 商品コードからカテゴリ分けに使うための集計用のコードを取得したい時
上記のようにIDや商品コードなどに含まれている数桁の文字列を取得する時にMID関数は活躍してくれる。
SPLIT関数との使い分け
MID関数の活用シーンを知って、下記のような疑問が出てくる人もいるのではないだろうか?
「SPLIT関数とはどう使い分ければいいの?何が違うの?」
私もまさにそう思った1人である(笑)
MID関数もSPLIT関数も使う活用シーンはすごく似ているが、違いも明確にある。
SPLIT関数の場合は区切り文字( ー(ハイフン) /(スラッシュ)など)が含まれている必要があり、区切り文字の前後を取得するのは得意だ。
対象の文字列フィールドは文字数がバラバラでも区切り文字があればそれを基準に分割できる。
一方で「文字列の真ん中の3文字を取得したい」という時や明確な区切り文字は向いていない。
MID関数の場合は先ほどの例のように対象の文字列フィールドの真ん中の数文字を取得する、ということが簡単にできる。
一方、文字の開始位置と文字数を指定する必要があるので、対象の文字列フィールドは文字数が統一されている必要がある。
整理すると下記のように使い分けると良いと思う
- SPLIT関数は文字数が決まっていなく、区切り文字が一定のルールに従っている場合に使う
- MID関数は文字数が決まっている場合に使う
SPLIT関数については下記記事で詳しく解説しているので是非参考にしてみてほしい。
まとめ
今回は文字列関数の1つであるMID関数を紹介した。
実務でよく使う関数の1つのなのでぜひ覚えて使ってみてほしい。
LEFT関数やSPLIT関数など他の文字列関数との違いも明確に整理しながら使いこなせるようになるとTableauで出来ることがどんどん増えていくと思うので是非下記の記事も参考にしてみてもらえると嬉しい。