エクセル入門
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)

Excelの初心者向け入門解説
公開日:2022-11-12 最終更新日:2022-11-14

TEXTSPLIT関数(列と行の区切り記号で文字列を分割)


TEXTSPLIT関数はOffice365のExcelに2022年になってから追加された新しい関数です。


TEXTSPLIT関数は、列の区切り記号と行の区切り記号を使用して文字列を分割します。
列の区切り(横に分割)を使った場合は「データ」タブの「区切り位置」と同じような処理ができる関数です。
さらに、列(横)への分割だけではなく行(縦)に分割することもできます。

TEXTSPLIT関数の構文

=TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])

text
テキスト
分割するテキスト。
必須です。
col_delimiter
列区切り
列の区切りに使用する文字。
ここに指定された文字で列(横)に分割されます。
必須ですが値を省略することはできます。
その場合は、カンマ(,)だけにしてください。
row_delimiter
行区切り
行の区切りに使用する文字。
ここに指定された文字で行(縦)に分割されます。
省略可能です。
ignore_empty
空のセルを無視
空のセルを無視するかどうかを指定します。
TRUE:空のセルを無視する
FALSE:空のセルを含める(既定値)
省略時はFALSE(空のセルを含める)になります。
match_mode
一致モード
区切り文字の検索時に、大文字小文字を区別するかどうかを指定します。
0:大文字と文字を区別する
1:大文字と小文字を区別しない
既定値は 0:(大文字と文字を区別する)
pad_with
埋め込む値
列の不足部分に埋め込む値。
列数はテキストを横に分割した結果によって変化します。
列区切りと行区切りを同時に指定して縦横分割する場合、行によって最大列数に達しない行がでてきます。
その場合に、各行の不足している部分の列に埋める値。
既定値は #N/A

テキスト(text)
エラー値の場合は他の指定にかかわらず同じエラー値が返されます。

列区切り(col_delimiter)と行区切り(row_delimiter)
列区切り(col_delimiter)と行区切り(row_delimiter)のどちらか一方は指定が必要になります。
列区切りだけの場合は、列(横)だけに分割されます。
行区切りだけの場合は、行(縦)だけに分割されます。
列区切りと行区切りの両方を指定した場合は、列と行(横と縦)に分割されます。

空のセルを無視(ignore_empty)
区切り文字が連続している部分やテキストの最初または最後が区切り文字の場合、それらは空のセルとして扱われます。

Excel エクセル 新関数 TEXTSPLIT関数

空のセルを無視(ignore_empty)がFALSE(既定)の場合、空のセルはそのまま空欄で出力されます。
空のセルを無視(ignore_empty)がTRUEの場合、空のセルは出力されず、その後が詰められて出力されます。

一致モード(match_mode)
は、区切り文字列の検索時に英文字(アルファベット)の大文字小文字を区別するかどうかです。

Excel エクセル 新関数 TEXTSPLIT関数

区切り文字は記号を指定することが多いので、区切り文字として英文字を使う機会は多くないと思います。

埋め込む値(pad_with)
列区切りと行区切りの両方を指定した場合のみ違いの出る動作です。
列区切りと行区切りの両方を指定した場合、出力は矩形(各行は同一列数)になります。
列数はテキストを縦横分割した結果の最大列数になります。
この時、行によって列の不足部分が発生するので、その不足部分に対して埋める文字(既定は#N/A)を指定します。


TEXTSPLIT関数の使用例と解説

使用例の目次

カンマ(,)で分割

=TEXTSPLIT(A1,",")
Excel エクセル 新関数 TEXTSPLIT関数

Excel,Word,Access
列区切りにカンマ","を指定。
カンマで区切って列(横)に分割しています。

=TEXTSPLIT(A1,,",")
Excel エクセル 新関数 TEXTSPLIT関数

Excel,Word,Access
行区切りにカンマ","を指定。
カンマで区切って行(縦)に分割しています。


カンマ(,)で列(横)に分割、セミコロン(;)で行(縦)に分割

=TEXTSPLIT(A1,",",";")
Excel エクセル 新関数 TEXTSPLIT関数

Excel,エクセル;Word,ワード;Access,アクセス
列区切りにカンマ","、行区切りにセミコロン";"を指定。
先に行で区切って縦に分割してから、分割された各行を列に分割するイメージをすれば良いでしょう。

Excel エクセル 新関数 TEXTSPLIT関数

Excel エクセル 新関数 TEXTSPLIT関数

列に分割する時、各行によって列数に違いが出る場合がある事を理解してください。
行によって列数が不足する場合の使用例はこの下にあります。


列(横)に分割した時に空のセルがある場合

=TEXTSPLIT(A1,",")
Excel エクセル 新関数 TEXTSPLIT関数

Excel,Word,,Access,
列区切りにカンマ","を指定して列(横)に分割します。
空のセルを無視(ignore_empty)は省略時既定の「FALSE:空のセルを含める(既定値)」になります。
区切り文字の間に文字がない場合や、文字列の先頭や最後が区切り文字の場合は、その分は空のセルが出力されます。

=TEXTSPLIT(A1,",",,TRUE)
Excel エクセル 新関数 TEXTSPLIT関数

Excel エクセル 新関数 TEXTSPLIT関数

Excel,Word,,Access,
列区切りにカンマ","、空のセルを無視(ignore_empty)に「TRUE:空のセルを無視する」を指定。
区切り文字の間に文字がない場合や、文字列の先頭や最後が区切り文字は無視されます。
空のセルを無視(ignore_empty)を省略またはFALSEの時に出力される空のセルは出力されずに、その分は詰めて出力されます。


横と縦で分割した時に、列に不足が発生する場合

=TEXTSPLIT(A1,",",";")
Excel エクセル 新関数 TEXTSPLIT関数

Excel,エクセル;Word;,アクセス
スピル全体の列数は、行(縦)に分割後の各行の最大列数になります。
2行目は「Word」の1列だけなので、2列目は不足部分となり既定値の#N/Aとなります。
3行目は「,アクセス」なので、1列目が空のセルとなりますが列数は2列となります。

=TEXTSPLIT(A1,",",";",TRUE)
Excel エクセル 新関数 TEXTSPLIT関数

空のセルを無視(ignore_empty)にTRUEを指定しているので空のセルは詰められます。
したがって、3行目の「アクセス」は1列目に詰まり、2列目は列不足となり既定値の#N/Aになります。

=TEXTSPLIT(A1,",",";",TRUE,,"***")
Excel エクセル 新関数 TEXTSPLIT関数

埋め込む値(pad_with)に"***"を指定しています。
各行の2列目で不足しているセルには"***"が出力されます。

区切り文字に配列を指定した場合

=TEXTSPLIT(A1,,{",",";"})
Excel エクセル 新関数 TEXTSPLIT関数

Excel,エクセル;Word;,アクセス
列区切りに配列 {",",";"} を指定しています。
配列内のいずれかの文字列に一致していれば列に分割されます。
ここで指定する配列は、縦横どちらの配列でも良いし2次元配列でも構いません。
つまり {",";";"} この配列でも結果は同じになります。
行区切りの指定でも同様です。

配列を指定することで、複数の別々の区切り文字を同じ文字に統一したり取り除いたりする事ができます。

Excel エクセル 新関数 TEXTSPLIT関数

TEXTJOIN関数の区切り文字を空文字""にするかCOCAT関数を使えば、一度に区切り文字列を取り除くことになります。

区切り文字の大文字小文字の区別

=TEXTSPLIT(A1,"a")
Excel エクセル 新関数 TEXTSPLIT関数

123a45A678a90
列区切りに小文字の"a"を指定。
小文字の"a"だけで区切られて列(横)に分割されます。
一致モード(match_mode)は省略時既定の「0:大文字と文字を区別する」になります。

=TEXTSPLIT(A1,"a",,,1)
Excel エクセル 新関数 TEXTSPLIT関数

Excel エクセル 新関数 TEXTSPLIT関数

123a45A678a90
列区切りに小文字の"a"、一致モード(match_mode)に「1:大文字と小文字を区別しない」を指定
小文字の"a"および大文字の"A"で区切られて列(横)に分割されます。
縦区切りの場合も同様です。

テキスト(text)に複数セルを指定しても期待した分割はできません

=TEXTSPLIT(A1:A2,",")
Excel エクセル 新関数 TEXTSPLIT関数

テキスト(text)に複数セルを指定してスピルさせたくなります。
しかし、これは期待した結果を得ることは出来ません。
分割はされますが、先頭要素しか出力されません。
これは縦区切りでも同じですし、テキストに指定するセル範囲が横範囲でも同じです。

TEXTSPLITの応用例:TEXTBEFOREまたはTEXTAFTERとの組み合わせ

以下では、複数の括弧()内の文字列を取り出して横に展開する例題でTEXTSPLIT関数を使っています。。
かっこつけてんじゃないよ編|LAMBDA以降の新関数の問題と解説(配列操作関数編)


LAMBDA以降の新関数の問題集 ・・・ 解答は別ページになっています。

・目次 ・LAMBDA踊るぞ編 ・LAMBDA踊るぞ編2 ・SCAN編 ・MAP編 ・REDUCE編 ・山手線営業の旅編 ・BYROW,BYCOL編 ・ここからはフリー問題だよ編 ・好きな関数を使ってくれ編 ・いろんな関数を使ってね編 ・魔球編 ・豚が木に登れば落ちることもある編 ・たまには100点とってみたいものだ編 ・これは何と言う処理なんだろ編 ・数字は嫌いなのだ編 ・外堀から埋めていくぞ編 ・なぜわざわざそうしたいのか編 ・かっこつけてんじゃないよ編 ・頭の体操だけど新関数の出番はあるか?編 ・定番だけど出してなかったよね編
LAMBDA以降の新関数の使用例
・2つの1次元配列から、それをクロス結合した結果を返す ・A列が同じ行のB列の値を連結して、A列の一意な値とともに出力 ・名前定義を使わずにLAMBDA関数で再帰する方法 ・文字列を大文字小文字変換して大小文字の全組み合わせを出力 ・2つのテーブルの片方しかない行を縦に連結出力 ・3連単、3連複のフォーメーション買目を全て列挙する ・FILTER関数の出力行数・列数を指定する ・月が縦で日が横の表を、曜日(7列)で縦に折り返す ・文字列内の括弧()()の中の文字を取り出して列挙 ・表内にあるセル内改行を複数行に展開 ・文字列の中から1文字削除の全パターン出力 ・クロスABC分析 ・月利が毎月変動する月複利の計算 ・レーベンシュタイン距離 ・文字列を数字と数字以外で分割 ・縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS) ・直積(クロス結合、…




同じテーマ「エクセル入門」の記事

EXPAND関数(配列を指定された行と列に拡張する)
WRAPROWS関数(1次元配列を指定数の行で折り返す)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)
LAMBDA以降の新関数の使用例
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)
直積(クロス結合、交差結合)とピボット解除
複数の文字列を検索して置換するSUBSTITUTE
LAMBDA以降の新関数の問題集


新着記事NEW ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ