Excel関数 逆引き集 | 文字列を分割(新)→ TEXTSPLIT

Excel
スポンサーリンク

概要

TEXTSPLITは「区切り文字で文字列を分割し、複数セルに自動展開」する新しい関数です。カンマ、スペース、タブ、改行などで一気に分割でき、行方向・列方向のどちらにも展開可能です。従来のLEFT/MID/FINDの組み合わせよりも短い式で、可読性と保守性が大幅に向上します。Microsoft 365以降で利用できます。


基本の使い方

書式

=TEXTSPLIT(文字列, 列区切り, [行区切り], [空白無視], [空要素無視], [不足時の埋め文字])
  • 列区切り:列方向に分ける区切り文字(例: “,”)
  • 行区切り:行方向に分ける区切り文字(例: CHAR(10))
  • 空白無視:TRUEで区切りの前後の空白を除去
  • 空要素無視:TRUEで区切りが連続したときの空要素を無視
  • 不足時の埋め文字:分割結果の形を揃えるためのパディング文字

=TEXTSPLIT("A,B,C",",")           // 横方向に A | B | C と展開
=TEXTSPLIT("A|B|C","|")          // 区切り文字を「|」に変更
=TEXTSPLIT("A B C"," ",,TRUE)    // 前後空白除去(空白無視=TRUE)

具体例

カンマ区切りのリストを列方向に分割

=TEXTSPLIT(A2,",")

A2が「りんご,みかん,ぶどう」のとき、横に「りんご」「みかん」「ぶどう」が並びます。

改行ごとに行方向へ分割

=TEXTSPLIT(B2,,CHAR(10))

B2の複数行テキストを縦方向(行)に展開します。セルの書式で「折り返して全体を表示」をオンにしておくと編集しやすいです。

タブ区切りを列方向に分割

=TEXTSPLIT(C2,CHAR(9))

TSV(タブ区切り)データを簡単に列方向へ展開できます。

行と列の両方で分割(行区切り→列区切り)

=TEXTSPLIT(D2,",",CHAR(10))

D2が「りんご,120¥[改行]みかん,140¥[改行]ぶどう,200」のとき、行ごとに商品名と価格の2列に展開されます。


応用テンプレート

空要素を無視して分割(区切りが連続するデータに)

=TEXTSPLIT(E2,",",, ,TRUE)

「A,,B,,,C」のような連続カンマから空要素を除外してきれいに分割します。

前後の余分な空白を削除して分割

=TEXTSPLIT(F2,",",,TRUE)

「A , B , C」のような不揃い空白を除去して均一に分割します。

列数を揃えるために不足要素をパディング

=TEXTSPLIT(G2,",",, ,FALSE,"(欠損)")

行ごとに列数が揃わないとき、欠損箇所に「(欠損)」を自動挿入して表の形を整えます。

TEXTSPLITで分割→並べ替えや抽出へ接続(LETと併用)

=LET(arr, TEXTSPLIT(H2,",",,TRUE,TRUE),
     TAKE(SORT(arr), , 3))

分割して得た配列をそのまま並べ替え・抽出に流用できます(Microsoft 365配列機能)。


よくあるつまずきと対策

期待方向に展開されない

列区切りを指定すれば横、行区切りを指定すれば縦に展開します。両方を同時に指定すると「行→列」の順で二次元に展開されます。

余分な空白や空要素で結果が乱れる

空白無視(第4引数)と空要素無視(第5引数)を活用しましょう。前処理を少なくできます。

区切り文字が複数種類ある

SUBSTITUTEで統一してから分割します。例:「;」を「,」に変換してからTEXTSPLIT。

旧Excelで動かない

TEXTSPLITは新関数です。旧バージョンではTEXTTOCOLUMNS(区切り位置指定)やFIND/MIDの組み合わせで代替します。


例題

問題1: A2の「りんご,みかん,ぶどう」をカンマで分割し、横に並べてB2以降へ展開してください。

解答例:

=TEXTSPLIT(A2,",")

問題2: C2の複数行テキストを改行で分割し、縦方向(行)にD2以降へ展開してください。

解答例:

=TEXTSPLIT(C2,,CHAR(10))

問題3: E2の「A , B , C」を前後空白を無視して分割し、F2以降に整然と展開してください。

解答例:

=TEXTSPLIT(E2,",",,TRUE)

問題4: G2の「A,,B,,,C」から空要素を除外して分割し、H2以降に展開してください。

解答例:

=TEXTSPLIT(G2,",",, ,TRUE)

問題5: I2の「りんご,120¥[改行]みかん,140¥[改行]ぶどう,200」を行・列の両方で分割し、J2から2列の表に展開してください。

解答例:

=TEXTSPLIT(I2,",",CHAR(10))

まとめ

TEXTSPLITは「区切って展開する」処理を最短距離で実現します。列区切りと行区切り、空白・空要素の扱い、パディングまで一式そろっているため、前処理の手間を劇的に減らせます。まずは「列区切りだけ」「行区切りだけ」から始め、次に両方指定とオプション(空白無視・空要素無視・埋め文字)を組み合わせる——この順で慣れると、現場で即戦力になります。

タイトルとURLをコピーしました