ExcelのTEXTSPLIT関数を使ってみた
はじめに
こんにちは。TDです。
長かった夏が終わりました。
今回は偶然見つけたExcelのTEXTSPLIT関数について簡単に紹介します。
簡単に文字列(データ)を分割できる関数で使ってみると意外と便利・・・という関数です。
TEXTSPLIT関数って?
既に使っている方はご存知だと思いますが、2022年8月ごろに365にリリースされた区切り記号を使用してテキスト文字列を分割できる関数になります。
1つのセルに入力されている文字列を区切り記号を使用してテキスト文字列を分割する方法として、ぱっと思いつく方法としてLEFT、FIND、MIDなどの関数を駆使する方法がありますが、TEXTSPLITでしたら一発で文字列の分割ができます。
TEXTSPLIT関数を使ってみよう
TEXTSPLITの構文は至ってシンプルです。
=TEXTSPLIT(元の文字列,列区切り文字,[行区切り文字],[空き文字の扱い],[検索モード], [空いたセルの値])
大括弧[ ]で囲っているところは省略可能の構文です。
必ず入れるのは最初の2つのみ。簡単です。
列区切り文字と行区切り文字は必ず入れる必要があるので、行で分けたい場合は3つになります。
構文の詳細はMicrosoftのドキュメントでご確認ください。
TEXTSPLIT 関数 - Microsoft サポート
使い方
実際に1つのセルに書かれている電話番号から市外局番、市内局番、加入者番号に分けてみましょう。各項目は”-”で区切られています。
市内局番??加入者番号??となった方。日本では市外局番、市内局番、加入者番号の3種類の番号に分かれており、この3つを組みあわせると電話番号になります。
A列に電話番号のリスト、C列に市外局番、D列に市内局番、E列に加入者番号をいれるようにします。
C3のセルにTEXTSPLITの式を入れます。
=TEXTSPLIT(A3,”-”)
式を確定するためにEnterキーを打鍵すると「数式がスピルされています」とメッセージが表示されるので「OK」をクリック
すると・・・
不思議なことに式を入れていないD3、E3にも値が入っています。
これは1つの数式を入力すると、入力したセルを基点に複数セルに自動入力してくれるスピル機能と言われるものです。
この場合、数式が入っているのはC3のみで、D3とE3には自動で1111が入力されています。
後は必要となる行に式をコピーするだけです。(C3の式をC4、C5にコピーする)
はい、出来上がりです。
これだと簡単なので、ちょっと複雑な?値の数が不揃いなデータを区切ってみましょう。
値がカンマ区切りされた住所のデータがあり、値の入っていない箇所もあります。
C3に分割する式を入れます。
今回は元データに空欄があった(区切り文字が連続している)場合は、そのまま空欄にする指定を入れます。
=TEXTSPLIT(A3,",",,FALSE)
式が入れ終わったら必要となる行にコピーします。
分割結果は元データで空欄だったところは空欄のままとなっています。
今回は列区切りの方法でしたが、縦区切り(行)もできます。
TEXTSPLIT関数を使うとcsvのデータ加工などの作業が楽になるかな、とは思っていますが残念なことに今のところ私は使う機会がないです・・・
最後に
TEXTSPLIT関数は365でのみ使え、2019や2016のExcelでは使うことができないのでご注意ください。
慣れた方法で作業してしまうことが多いですが、たまには違う方法で少しでも楽をしたいですよね。そんな方に今回の記事が何か参考になれば幸いです。