「CSVのデータをセルに貼り付けたいけど、カンマで区切る作業が毎回面倒」「フルネームを姓と名に分けたい」――そんな文字列の分割作業をすっきり解決してくれるのが TEXTSPLIT関数 です。
Excel 2021・Microsoft 365から使えるようになった比較的新しい関数で、指定した区切り文字でテキストを自動的に分割し、複数のセルに展開してくれます。
この記事では基本的な使い方から、複数の区切り文字の指定、よくあるエラーの対処まで順番に解説します。
TEXTSPLIT関数とは?
読み方と語源
「テキスト スプリット」と読みます。TEXT(テキスト)+ SPLIT(分割)が語源で、文字列を分割するための関数です。
できること
指定した 区切り文字(デリミタ) でテキストを分割し、隣接するセルにスピル(自動展開)します。
- カンマ・スペース・スラッシュなど任意の文字で分割できる
- 複数の区切り文字を同時に指定できる
- 行・列どちらの方向にも展開できる
- 空のセルを無視するかどうかも制御できる
対応バージョン:Excel 2021・Microsoft 365(Excel 2019以前では使用不可)
TEXTSPLIT関数の書き方
基本構文
=TEXTSPLIT( 文字列, 列の分割記号, [行の分割記号], [無視], [一致モード], [代替文字列] )
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 文字列 | 必須 | 分割したい文字列またはセル参照を指定します |
| 列の分割記号 | 必須 | テキストを列方向(横)に分割するための区切り文字を指定します |
| 行の分割記号 | 任意 | テキストを行方向(縦)に分割するための区切り文字を指定します |
| 無視 | 任意 | 区切り文字が連続した場合に空セルを含めるか指定します(FALSE=含める/TRUE=無視) |
| 一致モード | 任意 | 区切り文字の大文字・小文字を区別するか指定します(0=区別する/1=区別しない) |
| 代替文字列 | 任意 | 空セルの代わりに表示する文字列を指定します(省略時は #N/A) |
基本的な使い方
例1:カンマで区切られた文字列を分割する
A1セルに 東京,大阪,名古屋 が入っている場合:
=TEXTSPLIT(A1, ",")
B1に「東京」、C1に「大阪」、D1に「名古屋」が自動展開されます。
例2:スペースで氏名を分割する
A1セルに 田中 太郎 が入っている場合:
=TEXTSPLIT(A1, " ")
スペースを境に「田中」と「太郎」に分けられます。姓名分割の作業が一瞬で完了します。
例3:行方向にも分割する(2次元展開)
A1セルに a,b,c|d,e,f が入っていて、列は「,」で、行は「|」で分けたい場合:
=TEXTSPLIT(A1, ",", "|")
結果として次のような2行×3列の配列が展開されます:
a b c
d e f
複数の区切り文字を同時に指定する
列の分割記号には配列 {} を使って複数の文字を指定できます。
例:カンマとスラッシュを両方区切り文字にする
=TEXTSPLIT(A1, {",", "/"})
東京,大阪/名古屋 → 「東京」「大阪」「名古屋」に分割されます。複数の形式が混在したデータを処理するときに便利です。
「無視」引数の使い方
区切り文字が連続している(中身が空)場合の動作を制御します。
=TEXTSPLIT("a,,b,c", ",", , TRUE)
FALSE(省略時):「a」「(空)」「b」「c」の4セルに展開TRUE:「a」「b」「c」の3セルに展開(空セルを無視)
データの位置を保持したい場合は FALSE、きれいに詰めて表示したい場合は TRUE を選びましょう。
エラー処理パターン
空セルを代替文字列に置き換える
区切り文字が連続して空セルができた場合、#N/A の代わりに任意の文字列を表示できます。
=TEXTSPLIT("a,,b", ",", , FALSE, 0, "なし")
空セルの位置に「なし」が表示されます。表や資料にそのまま貼り付けたいときに活用してください。
大文字・小文字を区別しない分割
=TEXTSPLIT("AppleXbananaXcherry", "x", , , 1)
「X」も「x」も区切り文字として認識されます(一致モード=1)。
TEXTBEFORE・TEXTAFTERとの違い・使い分け
TEXTSPLIT関数と組み合わせて使われることが多い、TEXTBEFORE・TEXTAFTER関数との違いをまとめます。
| 関数 | できること | 使いどころ |
|---|---|---|
| TEXTSPLIT | 区切り文字でテキスト全体を分割し複数セルに展開 | CSVや区切りデータを一括展開したい |
| TEXTBEFORE | 指定文字より前の部分を抽出 | 「@の前のユーザー名だけ欲しい」 |
| TEXTAFTER | 指定文字より後ろの部分を抽出 | 「ドメイン部分だけ欲しい」 |
使い分けの目安:
- 分割した全要素を配列として取得 → TEXTSPLIT
- 特定の一部分だけ抽出 → TEXTBEFORE / TEXTAFTER
たとえばメールアドレス user@example.com から各部分を取り出す場合:
=TEXTBEFORE(A1, "@") → "user"
=TEXTAFTER(A1, "@") → "example.com"
=TEXTSPLIT(A1, "@") → "user" と "example.com" の2セルに展開
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | 文字列引数に数値が入っている | セルの書式を「文字列」に変更するか TEXT() で変換する |
#N/A | 区切り文字が見つからず空セルが生成された | 「代替文字列」引数に表示したい文字を指定する |
| スピルエラー | 展開先のセルに既存のデータがある | 展開先の範囲を空にしてから再実行する |
まとめ
TEXTSPLIT関数のポイントをまとめます。
- カンマ・スペースなど任意の区切り文字でテキストを分割し、複数セルに自動展開できる
- 第2引数で列分割、第3引数で行分割を指定できる
{}を使えば複数の区切り文字を同時指定できる- TEXTBEFORE・TEXTAFTERと組み合わせると、テキスト操作の幅がさらに広がる
Excel 2021以降やMicrosoft 365を使っているなら、CSV処理や名前分割など日常的な文字列操作に積極的に活用してみてください。
