【Excel】TEXTSPLIT関数で文字列を分割する方法|特定の要素を取り出す方法も解説

ExcelのTEXTSPLIT関数で文字列を分割する方法を解説する記事のサムネイル画像。
  • URLをコピーしました!

Excel 2024やMicrosoft 365で使用できるTEXTSPLIT関数は、指定した区切り文字を基準に、文字列を行方向・列方向に分割できる関数です。例えば、「a,b,c,d」をカンマで区切り、「a」「b」「c」「d」の4つのセルに分割して表示できます。

本記事では、TEXTSPLIT関数の基本的な使い方や各引数の指定方法に加え、INDEX・TAKE・DROP関数などと組み合わせて、特定の要素を取得・除外する方法まで、具体例を交えて解説します。

目次

TEXTSPLIT関数の基本的な使い方

TEXTSPLIT関数は、指定した区切り記号を基準に文字列を分割し、スピルで返す(複数のセルに表示する)関数です。
列方向(横方向)だけでなく、行方向(縦方向)にも分割できます。

指定した区切り記号がテキスト内に存在しない場合、その記号では分割されません。

TEXTSPLIT(テキスト, 列区切り記号, [行区切り記号], [空のセルは無視], [一致モード], [パディング値])

TEXTSPLIT関数の引数一覧

引数省略時説明
テキスト不可分割対象のテキストを指定します。ワイルドカードは使用できません。空の文字列を指定した場合、「#VALUE!」を返します。
列区切り記号列方向に分割しない列を分割する"特定の文字"を指定します。
行区切り記号行方向に分割しない行を分割する"特定の文字"を指定します。
空のセルは無視FALSE区切り記号が連続した場合に生じる空の要素を無視するか指定します。「TRUE」は無視し、「FALSE」は無視しません。
一致モード0大文字と小文字を区別して検索するかを指定します。
「0」は区別しますが、「1」は区別しません。
パディング値#N/A分割したとき、不足した要素を埋める値を指定します。

※[列区切り記号]と[行区切り記号]はどちらかを空文字以外で指定しないと「#VALUE!」エラーになります。

スピルとは?

スピルとは、1つのセルに入力した数式の計算結果が、隣接する複数のセルに自動的に表示される機能です。なお、表示先のセルにデータが入力されていると、「#スピル!」エラーが発生します。

TEXTSPLIT関数で文字列を分割する

列区切り文字・行区切り文字

TEXTSPLIT関数は、第1引数[テキスト]に分割対象の文字列、第2引数[列区切り文字]に区切りとなる文字を指定すると、文字列を列方向(横方向)に分割できます。

例えば、「a-b-c」を「-」で区切ると、「a」「b」「c」の3つに分割されます。一方、列区切り文字に「/」を指定した場合、対象の文字列に「/」が存在しないため、分割されずに元の文字列が表示されます。

TEXTSPLIT関数の抽出サンプル表([列区切り文字]を設定)

TEXTSPLIT関数で区切り記号を指定した場合の比較表。「-」を指定すると「a-b-c」が「a」「b」「c」に分割され、「/」を指定すると分割されずに「a-b-c」のまま表示される。

また、第2引数[列区切り文字]を省略し、第3引数[行区切り文字]に「-」を指定すると、文字列を行方向(縦方向)に分割できます。

TEXTSPLIT関数の抽出サンプル表([行区切り文字]を設定)

TEXTSPLIT関数の第3引数[行区切り記号]に「-」を指定した例。「a-b-c」が縦方向に分割され、「a」「b」「c」がそれぞれ別の行に表示される。

第2引数[列区切り文字]と第3引数[行区切り文字]の両方を指定すると、文字列を行方向・列方向の両方に分割できます。
例えば、第2引数に「-」、第3引数に「;」を指定すると、「-」で列を、「;」で行を区切り、2行×2列や2行×3列の表形式に分割できます。

TEXTSPLIT関数の抽出サンプル表([列区切り文字]と[行区切り文字]を設定)

TEXTSPLIT関数で列区切り記号に「-」、行区切り記号に「;」を指定した例。「a-b;c-d」は2行×2列に、「a-b-c;d-e-f」は2行×3列に分割される。

空文字列を無視

第4引数[空のセルは無視]に「TRUE」を指定すると、区切り文字が連続したときに生じる空の要素を除外できます。
例えば、「a-b--c」を「-」で分割すると、通常は「a」「b」「空の要素」「c」の4つに分割されますが、第4引数に「TRUE」を指定すると空の要素が除外され、「a」「b」「c」の3つに分割されます。

TEXTSPLIT関数の抽出サンプル表([空のセルは無視]を設定)

TEXTSPLIT関数の第4引数[空の要素を無視]の比較表。「a-b--c」を分割すると、FALSEでは連続するハイフンの間に空の要素が残り、TRUEでは空の要素を除外して「a」「b」「c」が連続して表示される。

大文字・小文字の区別

第5引数[一致モード]に「1」を指定すると、大文字と小文字を区別せずに文字列を分割できます。
例えば、「abcABC」を「B」で分割すると、通常は「abcA」と「C」の2つに分割されます。
一方、第5引数に「1」を指定すると、小文字の「b」も区切り記号として扱われ、「a」「cA」「C」の3つに分割されます。

TEXTSPLIT関数の抽出サンプル表([一致モード]を設定)

TEXTSPLIT関数の第5引数[一致モード]の比較表。「abcABC」を「B」で分割すると、既定値の0では大文字のBのみを区切り、結果は「abcA」「C」となる。1を指定すると小文字のbも区切り、結果は「a」「cA」「C」となる。

不足する要素の補完

第6引数[パディング値]に値を指定すると、文字列を分割した際に不足する要素を、指定した値で埋めることができます。
例えば、「a-b;c」を「-」で列方向、「;」で行方向に分割すると、通常は「a」「b」「c」「#N/A」の2行×2列になります。
第6引数に「データ不足」と指定すると、「#N/A」の代わりに「データ不足」が表示されます。

TEXTSPLIT関数の抽出サンプル表(パディング値を設定)

TEXTSPLIT関数の第6引数[パディング値]の比較表。「a-b;c」を2行2列に分割したとき、パディング値を省略すると不足部分に「#N/A」が表示され、「データ不足」を指定すると「#N/A」の代わりに「データ不足」が表示される。

複数の区切り文字を指定する方法

TEXTSPLIT関数では、第2引数[列区切り文字]や第3引数[行区切り文字]に配列定数を指定することで、複数の区切り文字を使用できます。
複数の区切り文字を指定する場合は、それぞれの文字を半角カンマで区切り、全体を波かっこ {} で囲みます。

例えば、「-」と「;」の両方を区切り文字として使用する場合は、=TEXTSPLIT("a-b;A-B",{"-",";"})のように指定します。この場合、「a」「b」「A」「B」の4つに分割されます。

TEXTSPLIT関数の抽出サンプル表(複数の区切り文字)

TEXTSPLIT関数で複数の区切り記号を指定した場合の比較表。「a-b;A-B」を「-」と「;」の両方で分割すると「a」「b」「A」「B」となり、「-」のみでは「a」「b;A」「B」、「;」のみでは「a-b」「A-B」となる。

さまざまな関数と組み合わせる

TEXTSPLIT関数とINDEX関数で、特定の要素のみを取得する

TEXTSPLIT関数とINDEX関数を組み合わせると、分割した文字列から特定の要素だけを取得できます。
INDEX関数の第1引数にTEXTSPLIT関数を指定し、第2引数で取得したい要素の位置を指定します。

例えば、セルA1に「a-b-c」が入力されている場合、次の数式で2番目の要素「b」を取得できます。
=INDEX(TEXTSPLIT(A1, "-"), 2)

TEXTSPLIT関数の抽出サンプル表(INDEX関数との組み合わせ)

TEXTSPLIT関数とINDEX関数を組み合わせた例。「a-b-c」をハイフンで分割し、INDEX関数の第2引数に1を指定すると「a」、2では「b」、3では「c」を個別に取得できる。

INDEX関数の第2引数に負の数を指定すると、「#VALUE!」エラーになります。
末尾の要素のみ取得したい場合は、CHOOSECOLS関数やCHOOSEROWS関数、TAKE関数と組み合わせてください。

TEXTSPLIT関数とTAKE・DROP関数で、先頭や末尾の要素を取得・除外する

TEXTSPLIT関数とTAKE関数もしくはDROP関数を組み合わせると、分割した文字列から先頭や末尾の要素を取得したり、除外したりできます。
TAKE関数は指定した数の要素を取得し、DROP関数は指定した数の要素を除外する関数です。
また、正の数を指定すると先頭から、負の数を指定すると末尾から処理できます。

TAKE関数とDROP関数では、第1引数にTEXTSPLIT関数、第2引数に行数、第3引数に列数を指定します。

今回は文字列を横方向に分割するため、第2引数を省略し、第3引数で取得・除外する列数を指定しました。

TEXTSPLIT関数の抽出サンプル表(TAKE・DROP関数との組み合わせ)

TEXTSPLIT関数とTAKE・DROP関数を組み合わせた比較表。「a-b-c」を分割した結果から、TAKE関数では先頭または末尾の1要素を取得し、DROP関数では先頭または末尾の1要素を除外できることを示している。

TAKE関数とDROP関数は、複数の行・列に分割した結果にも使用できます。
例えば、=TAKE(TEXTSPLIT("a-b;c-d","-",";"),1)は「a-b;c-d」を2行×2列に分割し、そのうち先頭1行(「a」と「b」)だけを取得します。

TEXTSPLIT関数で「a-b;c-d」を2行×2列に分割し、TAKE関数で先頭1行を取得する例。結果として「a」と「b」が横方向に表示される。

TEXTSPLIT関数とCHOOSECOLS・CHOOSEROWS関数で、特定の要素を取得する

TEXTSPLIT関数とCHOOSECOLS関数を組み合わせると、分割した文字列から指定した位置の要素をまとめて取得できます。
TAKE関数は先頭や末尾から連続した要素を取得しますが、CHOOSECOLS関数は、1番目と3番目のように離れた位置の要素も取得できます。
また、取得する要素を複数指定した場合は、指定した順番で結果が表示されます。
例えば、=CHOOSECOLS(TEXTSPLIT("a-b-c","-"),1,3) とすると、1番目の「a」と3番目の「c」を取得します。なお、1つだけの要素を取得することもできます。

負の数を指定すると末尾から要素を取得できます。「-1」は末尾、「-2」は末尾から2番目を意味します。

TEXTSPLIT関数の抽出サンプル表(CHOOSECOLS関数との組み合わせ)

TEXTSPLIT関数とCHOOSECOLS関数を組み合わせた比較表。「a-b-c」を分割した結果から、指定した列番号に応じて「a」「a・b」「c・a」「c・b」を取得でき、離れた位置の要素や末尾からの要素も取得できる。

TEXTSPLIT関数で縦方向に分割した場合は、CHOOSEROWS関数を使用することで、指定した行の要素を取得できます。

TEXTSPLIT関数の抽出サンプル表(CHOOSEROWS関数との組み合わせ)

TEXTSPLIT関数で「a-b-c」を縦方向に分割し、CHOOSEROWS関数で1番目と3番目の要素を取得する例。結果として「a」と「c」が縦方向に表示される。

TEXTSPLIT関数の注意点

Excel 2021以前では使用できない

TEXTSPLIT関数は、Microsoft 365およびExcel 2024で使用できます。
Excel 2021以前では対応していないため、使用すると「#NAME?」エラーになる場合があります。

余談ですが、2026年11月現在、GoogleスプレッドシートではTEXTSPLIT関数はありません。
SPLIT関数で文字列を分割できます。

分割後の値は文字列として扱われる

TEXTSPLIT関数で分割した結果は、数字であっても文字列として扱われます。
例えば、「100-200-300」を分割した場合、「100」「200」「300」が文字列として返されます。

数値として取得したい場合は、次のようにVALUE関数と組み合わせます。

=VALUE(TEXTSPLIT("100-200-300","-"))

年月日はセルの表示形式に気をつけよう

日付が表示されているセルは、表示形式によってデータの見た目が変わっている場合があります。
例えば、セルに「2027/1/1」と表示されていても、実際には日付のシリアル値「46388」が保存されています。
この場合、区切り文字に「/」を指定しても、実際の値には「/」が含まれていないため、「46388」がそのまま表示されます。

日付から年・月・日を個別に取り出したい場合は、次のようにTEXT関数で日付を文字列に変換してから分割します。

=TEXTSPLIT(TEXT(A1,"yyyy/m/d"),"/")

セルA1の表示形式が[日付]で「2027/1/1」と表示されているなら、上記数式で年月日を分割できます。

まとめ

TEXTSPLIT関数は、指定した区切り文字を基準に文字列を分割し、複数のセルに表示できる関数です。

列方向(横方向)だけでなく、行方向(縦方向)にも分割でき、複数の区切り文字を指定したり、空の要素を除外したりすることもできます。

また、INDEX関数と組み合わせれば特定の要素を取得でき、TAKE・DROP関数を使用すると、先頭や末尾の要素をまとめて取得・除外できます。
さらに、CHOOSECOLS・CHOOSEROWS関数を使用すれば、離れた位置にある複数の要素も取得できます。

ただし、分割した結果は文字列として扱われるため、数値や日付を処理する場合には注意が必要です。

参考資料

Microsoft「TEXTSPLIT 関数」
https://support.microsoft.com/ja-jp/excel/functions/textsplit-function

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

これまで約20年間Excelを使用し、IT関連の業務や不動産業界での事務業務において、資料作成やデータ集計、業務の効率化などに取り組んできました。また、VBAによる作業の自動化や、社内の社員向けにVBAを指導した経験もあります。

当サイトでは、これまでの実務経験をもとに、Excelの基本操作や便利な機能、よくあるエラーやトラブルの対処法を初心者にも分かりやすく解説しています。

記事は実際のExcelで操作を確認し、画像を使って手順を説明しています。公開後も内容を見直し、必要に応じて修正しています。

Excelで困ったときに、問題解決の手助けとなるサイトを目指しています。

目次