概要
TEXTSPLITは「区切り文字で分割しつつ、行方向・列方向にきれいに整形して配置」できる新関数です。カンマやタブ、改行など複数の区切りを同時指定でき、分割結果を横(列)・縦(行)・二次元(行→列)に展開できます。空白除去や欠損の埋め文字など整形オプションも充実しているため、前処理を最小限にできます。
基本の使い方
書式
=TEXTSPLIT(文字列, 列区切り, [行区切り], [空白無視], [空要素無視], [不足時の埋め文字])
- 列区切り:横方向に分ける区切り(例: “,” や CHAR(9))
- 行区切り:縦方向に分ける区切り(例: CHAR(10))
- 空白無視:TRUEで区切り前後の空白を除去
- 空要素無視:TRUEで連続区切りによる空セルを除外
- 不足時の埋め文字:列数を揃えるためのパディング
方向指定の基本
=TEXTSPLIT(A2,",") // 列区切りだけ → 横(列)に展開
=TEXTSPLIT(A2,,CHAR(10)) // 行区切りだけ → 縦(行)に展開
=TEXTSPLIT(A2,",",CHAR(10)) // 行→列の二次元展開(行区切りで段、列区切りで項目)
具体例
カンマ区切りを横に展開(列方向)
=TEXTSPLIT("りんご,みかん,ぶどう",",")
1セルのリストを横並びの複数セルに自動展開します。
改行区切りを縦に展開(行方向)
=TEXTSPLIT("東京" & CHAR(10) & "大阪" & CHAR(10) & "福岡",,CHAR(10))
複数行テキストを行方向に分割します(セルの「折り返して全体を表示」をオンにすると編集しやすい)。
行と列の両方で整形(表へ展開)
=TEXTSPLIT("りんご,120" & CHAR(10) & "みかん,140" & CHAR(10) & "ぶどう,200", ",", CHAR(10))
1行が「品名,価格」の形式なら、2列の表として整形されます。
タブ区切りを列に展開(TSV対応)
=TEXTSPLIT(A2,CHAR(9))
タブ区切りのデータを列に展開します。外部システム連携で便利です。
応用テンプレート
余分な空白を除去しながら分割
=TEXTSPLIT(A2,",",,TRUE)
「A , B , C」のような揺れを吸収してクリーンに展開。
空要素を無視(区切り連続のノイズ対策)
=TEXTSPLIT(A2,",",, ,TRUE)
「A,,B,,,C」から空セルを作らずに分割します。
列数を揃えるために欠損をパディング
=TEXTSPLIT(A2,",",, ,FALSE,"(欠損)")
行ごとの列不足を「(欠損)」で埋め、表の形を維持します。
区切りが複数種類なら統一してから分割
=TEXTSPLIT(SUBSTITUTE(SUBSTITUTE(A2,"; ",","),";",","),",",,TRUE,TRUE)
「;」と「,」が混在する場合を事前に「,」へ統一。
分割→加工まで一気通貫(LETで可読性向上)
=LET(
raw, A2,
arr, TEXTSPLIT(raw,",",CHAR(10),TRUE,TRUE),
SORT(arr) // 例:分割結果を並べ替え
)
Microsoft 365の配列処理と組み合わせると後続処理が強力になります。
よくあるつまずきと対策
展開方向が意図と違う
「横に並べたい=列区切り」「縦に並べたい=行区切り」。二次元は行区切り(段)→列区切り(項目)の順で理解すると迷いません。
空白や空要素で形が崩れる
第4引数(空白無視)と第5引数(空要素無視)を積極活用。前処理のTRIM/SUBSTITUTEを減らせます。
古いExcelで使えない
TEXTSPLITは新関数です。旧バージョンでは「データ」→「区切り位置指定」や、FIND/MID/LEFTの組み合わせで代替してください。
改行が正しく扱えない
改行はCHAR(10)。テキストの貼り付け元によってはCR+LFの場合もあるため、必要ならSUBSTITUTEで統一します。
=TEXTSPLIT(SUBSTITUTE(A2,CHAR(13)&CHAR(10),CHAR(10)),,",",TRUE,TRUE)
例題
問題1: A2の「りんご,みかん,ぶどう」をカンマで列方向に分割し、B2以降へ展開してください。
解答例:
=TEXTSPLIT(A2,",")
問題2: C2の複数行テキストを改行で行方向に分割し、D2以降へ展開してください。
解答例:
=TEXTSPLIT(C2,,CHAR(10))
問題3: E2の「品名,価格」形式が改行で並ぶデータを、行区切り+列区切りで2列の表にF2から展開してください。
解答例:
=TEXTSPLIT(E2,",",CHAR(10))
問題4: G2の「A , B , C」を前後空白を無視して分割し、H2以降に整形して展開してください。
解答例:
=TEXTSPLIT(G2,",",,TRUE)
問題5: I2の「A,,B,,,C」から空要素を除外して分割し、J2以降に展開してください。
解答例:
=TEXTSPLIT(I2,",",, ,TRUE)
まとめ
TEXTSPLITは「分割」と「整形」を同時にこなす文字列処理の主役です。列区切り・行区切りの使い分け、空白/空要素の制御、欠損パディングまで一式そろうため、従来の複雑な式をコンパクトに置き換えられます。まずは単方向分割から慣れ、行+列の二次元展開、オプション調整へとステップアップすると現場で即戦力になります。
