ExcelのTEXTSPLIT関数で1つのセルを分けたい!公式情報でわかる6つの引数、列と行の区切り記号と#N/Aの扱いを見よう

※本記事には広告・アフィリエイトリンクが含まれます。

「営業部,田中,東京」のように、1つのセルにカンマ区切りで入っている文字を、別々のセルに分けたいことがあります。Excelの「区切り位置」機能でも分けられますが、元のセルを直したときに結果も変わってほしいなら、数式で分ける方法があります。それがTEXTSPLIT関数です。

この記事では、Microsoftサポートの「TEXTSPLIT 関数」のページだけをもとに、6つの引数と、列・行の分け方、空のセルや#N/Aの扱いを整理しました。

目次

TEXTSPLIT関数とは

楽天市場で「Excel 関数 本」を探す

どんな関数?

Microsoftサポートでは、TEXTSPLIT関数は「列と行の区切り記号を使用してテキスト文字列を分割します」と説明されています。

さらに、テキスト列変換ウィザードと同じように動作するけれど、数式形式で動作する関数だとされています。列をまたいで分割したり、行単位で下に分割したりできます。また、TEXTJOIN関数の反転だ、とも書かれています。TEXTJOIN関数が複数のセルの文字を区切り記号でつなぐのに対し、TEXTSPLIT関数は1つの文字列を区切り記号で分ける、という関係です。

使えるExcel

Microsoftサポートのページの「適用先」には、次のExcelが挙げられています。

適用先
Excel for Microsoft 365
Excel for Microsoft 365 for Mac
Excel 2024
Excel 2024 for Mac

職場で使っているExcelがこの中に入っているかどうか、まず確認しておきましょう。ファイルを共有する相手が別のバージョンを使っている場合もあるので、共有する前に相手の環境も聞いておくと安心です。

構文

Microsoftサポートに載っている構文は、次の通りです。

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

角かっこ[]で囲まれている引数は、省略できるものです。

TEXTSPLIT関数の6つの引数

楽天市場で「Excel 関数 辞典」を探す

ここからは、Microsoftサポートの説明をもとに、6つの引数を1つずつ見ていきます。

1. text(分割するテキスト)

分割するテキストです。Microsoftサポートでは、指定が必要な引数とされていて、省略できません。セル番号(たとえばA2)を指定すれば、そのセルに入っている文字列が分割の対象になります。

2. col_delimiter(列の区切り記号)

列間でテキストをスピルするポイントを示すテキストです。たとえば「,」を指定すると、カンマのところで文字列が分けられ、右方向のセルへ順番に並びます。

A2の内容 数式 結果のイメージ
営業部,田中,東京 =TEXTSPLIT(A2,”,”) 営業部|田中|東京(横に3つのセル)

3. row_delimiter(行の区切り記号)

行方向にテキストをスピルするポイントをマークするテキストで、省略可能です。たとえば「;」を指定すると、セミコロンのところで下の行に分かれます。

Microsoftサポートの使用例2では、「1,2,3;4,5,6」を =TEXTSPLIT(A2,”,”,”;”) で2×3の配列に分割する例が紹介されています。カンマで列が、セミコロンで行が分かれるので、1行目が「1、2、3」、2行目が「4、5、6」になります。

1 2 3
4 5 6

4. ignore_empty(連続する区切り記号の扱い)

TRUEを指定すると、連続する区切り記号は無視されます。既定値はFALSEで、空のセルが作成されます。省略可能です。

たとえば「営業部,,東京」のように、カンマが2つ続いている文字列があるとします。FALSE(または省略)なら、カンマとカンマの間に空のセルができます。TRUEなら、その空のセルは作られません。

A2の内容 ignore_empty 結果のイメージ
営業部,,東京 FALSE(既定) 営業部|(空)|東京
営業部,,東京 TRUE 営業部|東京

項目の位置をそろえたい表(2番目の項目は担当者、と決まっている表)では、空のセルを残すFALSEのほうが列がずれません。逆に、単語だけを取り出したいときはTRUEが向いています。

5. match_mode(大文字と小文字)

大文字と小文字を区別しない一致を実行するには、1を指定します。既定値は0で、大文字と小文字を区別する一致が行われます。省略可能です。

区切り記号にアルファベットを使うとき、たとえば「x」で区切りたいのに、文字列の中に「X」も混ざっている場合に関係してきます。0(既定)なら「x」だけで分け、1なら「X」でも分けます。

6. pad_with(足りない部分を埋める値)

結果を埋め込む値です。既定値は#N/Aです。

列と行の両方で分割したとき、行ごとに分かれた個数がそろっていないと、足りない場所が出てきます。その場所に入る値が、何も指定しなければ#N/Aになります。Microsoftサポートの例7では、#N/Aエラーを削除するには、IFNA関数を使用するか、pad_with引数を追加する、というヒントが紹介されています。

A2の内容 数式 2行目の結果のイメージ
1,2,3;4,5 =TEXTSPLIT(A2,”,”,”;”) 4|5|#N/A
1,2,3;4,5 =TEXTSPLIT(A2,”,”,”;”,,,””) 4|5|(空)

区切り記号を複数使う

楽天市場で「Excel 本 初心者」を探す

配列定数で指定する

Microsoftサポートの解説では、複数の区切り記号がある場合は、配列定数を使用する必要がある、とされています。たとえば、コンマとピリオドの両方で分割するには、=TEXTSPLIT(A1,{”,”,”.”}) を使用します。

配列定数は、波かっこ { } の中に、カンマで区切って区切り記号を並べたものです。

※この記事では、表示の都合で波かっこを全角({})で書いています。Excelに入力するときは半角の波かっこにしてください。

仕事のデータで考える

たとえば、取引先から届いた一覧で、区切りに「、」と「・」が混ざっていたとします。

A2の内容 数式 結果のイメージ
東京、大阪・名古屋 =TEXTSPLIT(A2,{”、”,”・”}) 東京|大阪|名古屋

区切り記号をそろえる置換をしてから分けることもできますが、配列定数を使えば、元のデータを書き換えずに1つの数式で分けられます。

列と行の両方で分ける

Microsoftサポートの例7では、=TEXTSPLIT(A2,” “,”.”,TRUE) という数式が紹介されています。スペースで列に、ピリオドで行に分け、TRUEで連続する区切り記号を無視する指定です。

このように、col_delimiterとrow_delimiterの両方を指定すると、1つのセルの文字列を表の形に広げられます。

行方向だけに分ける

楽天市場で「テンキー」を探す

col_delimiterを空ける

Microsoftサポートの使用例4では、=TEXTSPLIT(A2,,”.”) という数式が紹介されています。2番目の引数(col_delimiter)を空けて、3番目の引数(row_delimiter)にピリオドを指定しています。

こうすると、横には分けずに、ピリオドのところで下の行へ分けることができます。カンマが2つ続いているのは、2番目の引数を省略しているという意味です。

縦に並べたい場面

たとえば、1つのセルに「会議資料;見積書;請求書」のように書かれたタスクを、縦の一覧にしたいときに使えます。

A2の内容 数式 結果のイメージ
会議資料;見積書;請求書 =TEXTSPLIT(A2,,”;”) 会議資料/見積書/請求書(縦に3つのセル)

縦に並べておくと、ほかのセルを参照してチェック欄をつけるなど、一覧として扱いやすくなります。

使用例のまとめ

使用例 数式 分け方
使用例1 =TEXTSPLIT(A2,” “) スペースで列に分ける
使用例2 =TEXTSPLIT(A2,”,”,”;”) カンマで列、セミコロンで行
使用例3 =TEXTSPLIT(A2,{”.”,”-“}) 2つの区切り記号で列に分ける
使用例4 =TEXTSPLIT(A2,,”.”) ピリオドで行に分ける
使用例6 =TEXTSPLIT(A2,,{”.”,”-“},TRUE) 2つの区切り記号で行、連続は無視
例7 =TEXTSPLIT(A2,” “,”.”,TRUE) スペースで列、ピリオドで行

使う前に確かめたいこと

楽天市場で「ワイヤレスマウス 静音」を探す

結果を置く場所を空けておく

TEXTSPLIT関数は、分けた結果を右や下のセルに広げて表示します(Microsoftサポートでは「スピル」と表現されています)。分けた後の個数ぶん、右や下のセルを空けておくと、表の中の別のデータと重なりにくくなります。

区切り記号を確認する

全角のカンマ「,」と半角のカンマ「,」は別の文字です。データの中でどちらが使われているかを先に見ておき、col_delimiterやrow_delimiterに同じ文字を指定しましょう。混ざっているなら、配列定数で両方を指定する方法があります。

元のデータは残しておく

TEXTSPLIT関数は数式なので、元のセルを書き換えると結果も変わります。元のデータを消してしまうと、結果も表示されなくなります。分けた結果を別のファイルに渡したいときは、元のデータを残したまま作業するのがおすすめです。

TEXTSPLIT関数のよくある質問

楽天市場で「Excel 本 関数」を探す

「区切り位置」機能と何が違う?

Microsoftサポートでは、TEXTSPLIT関数はテキスト列変換ウィザードと同じように動作するけれど、数式形式で動作する、と説明されています。数式なので、元のセルの内容を変えると結果も変わります。

結果に#N/Aが出たら?

Microsoftサポートでは、IFNA関数を使うか、pad_with引数を追加する方法が紹介されています。

大文字と小文字は区別される?

match_modeの既定値は0で、大文字と小文字を区別する一致が行われます。区別しないなら1を指定します。

TEXTSPLIT関数で1つのセルを分けてみよう

楽天市場で関連アイテムを探す

TEXTSPLIT関数は、列の区切り記号と行の区切り記号を指定して、1つのセルの文字列を分ける関数です。空のセルの扱いはignore_empty、大文字と小文字はmatch_mode、足りない部分の値はpad_withで指定できます。まずは手元の小さなデータで、列だけ、行だけ、両方の3つの分け方を試してみてください。

楽天市場で「Excel 関数 本」をもう一度探す

  • URLをコピーしました!

この記事を書いた人

仕事の段取りや伝え方、道具の選び方を検証し、実践しやすく紹介する編集部です。

目次