Excel新関数TEXTSPLITとは?区切り文字で文字列を簡単分割!基本の使い方を解説

Excelでデータを扱っていると、「カンマ(,)」や「スラッシュ(/)」などで区切られた長い文字列を、別々のセルに分けたい場面がよくありますよね?例えば、顧客リストのCSVデータを貼り付けたときや、アンケート結果をまとめたときなどです。
これまでは、「区切り位置指定ウィザード」を使ったり、LEFT関数、MID関数、RIGHT関数、FIND関数などを複雑に組み合わせて数式を作ったりする必要があり、少し手間がかかりました。
しかし、Microsoft 365版のExcelに新しく追加されたTEXTSPLIT関数を使えば、数式一つで簡単に文字列を分割できるようになりました(Excel 2024 の時点で追加された関数)。
TEXTSPLIT関数とは?
TEXTSPLIT(テキスト・スプリット)関数は、指定した「区切り文字(デリミタとも言います)」を使って、一つのセルに入っている文字列を、複数のセルに分割してくれる関数です。
※買い切り版のExcel 2021以前のバージョンでは利用できないので注意が必要です。
TEXTSPLIT関数のメリット:
- 手軽さ: 区切り位置指定ウィザードのように何度もクリックする必要がなく、数式を入力するだけ!
- 自動更新: 元のデータが変更されると、分割結果も自動で更新されます。
- 柔軟性: 横方向だけでなく、縦方向にも分割できます。
TEXTSPLIT関数の基本的な構文
TEXTSPLIT関数の基本的な形は以下のようになります。
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])たくさんの引数がありますが、基本としてまず覚えるのは最初の2つです。
text【必須】: 分割したい文字列が入っているセルを指定します。(例: A1)col_delimiter【必須 ※「row_delimiter」を使用しない場合】: 横方向(列方向)に分割するための区切り文字を指定します。文字はダブルクォーテーション" "で囲みます。(例: “,” , “/” , ” “)row_delimiter【省略可】: 縦方向(行方向)に分割するための区切り文字を指定します。これを使うと、結果が下のセルに向かって表示されます。ignore_empty【省略可】: 区切り文字が連続している場合に、空のセルを作るかどうかを指定します。TRUEを指定すると空のセルを作りません。(省略するとFALSE=空のセルを作る)match_mode,pad_with【省略可】: より高度な設定ですが、基本編では使いません。
難しく感じるかもしれませんが、省略可能な引数が多く実際に使ってみると意外と簡単です。
使ってみよう!TEXTSPLIT関数の具体例
それでは、具体的な例を見ていきましょう。
サンプル表1: 区切り文字で分けたい商品リスト
| りんご,みかん,バナナ |
| 商品A/商品B/商品C |
| 東京 大阪 名古屋 |
例1: カンマ区切りデータを横方向に分割
セルA1に入っている「りんご,みかん,バナナ」を、カンマ,を区切り文字として、B1, C1, D1セルに分けてみましょう。
分割結果を表示したい先頭のセル(ここではB1セル)に、以下の数式を入力します。
=TEXTSPLIT(A1, ",")
結果:
| B1: りんご | C1: みかん | D1: バナナ |
たったこれだけです!B1セルに数式を入力するだけで、C1セル、D1セルにも自動的に分割結果が表示されます。これはExcelの「スピル」という機能によるものです。


例2: スラッシュ区切りデータを横方向に分割
次に、セルA2の「商品A/商品B/商品C」をスラッシュ/で区切ってみましょう。B2セルに以下の数式を入力します。
=TEXTSPLIT(A2, "/")
結果:
| B2: 商品A | C2: 商品B | D3: 商品C |

例3: スペース区切りデータを横方向に分割
セルA3の「東京 大阪 名古屋」はスペースで区切られています。B3セルに以下の数式を入力します。区切り文字は半角スペース" "です。
=TEXTSPLIT(A3, " ")
結果:
| B3: 東京 | C3: 大阪 | D3: 名古屋 |

例4: 改行区切りデータを縦方向に分割
今度は、一つのセルの中で改行されているデータを縦方向に分割してみましょう。Excelでセル内改行はAlt + Enterで入力します。
サンプル表2: セル内改行データ
| 項目1 項目2 項目3 |
※上の表ではWeb表示用に改行していますが、Excel上ではE1セル内に3行で入力されている状態です。

セルE1のデータを、F1, F2, F3セルに縦に分割します。この場合、縦方向の区切り文字を指定するrow_delimiter引数を使います。セル内改行を表すにはCHAR(10)という特別な関数を使います。
F1セルに以下の数式を入力します。
=TEXTSPLIT(E1, , CHAR(10))
ポイント: 横方向の区切り文字col_delimiterは使わないので、引数の場所を空けるためにカンマ,を2つ続けて入力します。

結果:
| F1: 項目1 |
| F2: 項目2 |
| F3: 項目3 |

このように、縦方向に分割することも可能です。
ちょっと応用: 連続した区切り文字を無視する
データによっては、区切り文字が連続していたり(例: データA,,データB)、文字列の最後に区切り文字が付いていたりすることがあります。
例えば、セルA4にデータA,,データB,と入力されているとします。
単純にカンマで分割すると、
=TEXTSPLIT(A4, ",")
結果は「データA」「(空のセル)」「データB」「(空のセル)」となってしまい、不要な空のセルができてしまいます。
これを避けるには、4番目の引数ignore_emptyをTRUEに設定します。
B4セルに以下の数式を入力します。
=TEXTSPLIT(A4, ",", , TRUE)
ポイント: 3番目の引数row_delimiterは使わないので、ここでもカンマ,で場所を空けます。

結果:
| B4: データA | C4: データB |

このように、TRUEを指定することで、余計な空のセルが作られなくなり、スッキリした結果が得られます。
まとめ
今回は、Excelの新関数TEXTSPLITの基本的な使い方をご紹介しました。
=TEXTSPLIT(セル番地, "区切り文字")で簡単に横方向へ分割できる。=TEXTSPLIT(セル番地, , CHAR(10))でセル内改行を縦方向へ分割できる。=TEXTSPLIT(セル番地, "区切り文字", , TRUE)で連続した区切り文字による空セルを無視できる。
TEXTSPLIT関数を使えば、これまで手間がかかっていた文字列の分割作業が劇的に効率化します。特に、Webからコピーしてきたデータや、システムから出力されたデータの整理に非常に役立ちます。
Microsoft 365版のExcelをお使いの方は、ぜひこの便利なTEXTSPLIT関数を活用してみてください!
コメント