Excel CSVなどの文字列の分割を関数で行う方法
カンマなど特定の文字で区切られている文字列を
セルごとに分割する方法がExcelでは4つあります。
それぞれ下記の特徴があります。
- | 方法 | 特徴 |
---|---|---|
① | テキストファイルウィザード | 柔軟性が高いが手間も大きい。 定型化されていない業務に適切。 |
② | 文字列関数の組み合わせ | 一度関数を作れば、その後の手間が小さい。 ただし数式が非常に複雑。 何度も分割を行う場合に適切。 最新でない状況でも利用可能です。 |
③ | TEXTSPLIT関数 | 2022年9月のアップデートで追加された関数。 簡潔な数式で文字列の分割が可能です。 最新の関数が利用できる状況では最もお勧めです。 |
④ | ユーザ定義関数(マクロ・VBA) | マクロ・VBAを使う必要があるが 手間の少なさと数式のシンプルさで ②より優秀 |
この記事では②の文字列関数の組み合わせで行う方法を紹介します。
他の方法は関連記事よりリンクする別の記事で紹介します。
サンプルファイル
数式が複雑で準備の手間があるのでサンプルファイルを
そのまま使っていただくのが最も手間が少ないです。
B2セルにカンマやパイプ(||)などの区切り文字を指定して
B5以降に分割したい文字を記入します。
するとD~M列に分割した文字列が表示されます。
50列以上存在する場合はD4以降の数式をコピーしてください。

作成手順
まず作業用の文字列を作成します。数式は下記のようになります。
=区切り文字&文字列&区切り文字
これにより文字列の前後で区切り文字で囲みます。

次に1から連番のセルを用意して(N番目)、その数式をコピーします。
IFERROR関数、MID関数、FIND関数、SUBSTITUTE関数、LEN関数を指定します。
=IFERROR( MID(作業用セル, FIND(代替文字,SUBSTITUTE(作業用セル,区切り文字,代替文字,N番目)) + LEN(区切り文字), FIND(代替文字,SUBSTITUTE(作業用セル,区切り文字,代替文字,N番目+1)) - (FIND(代替文字,SUBSTITUTE(作業用セル,区切り文字,代替文字,N番目)) + LEN(区切り文字))) ,"")
作業用セル | 区切り文字で囲んだ文字列を 列のみ$で指定します。 |
代替文字 | 作業用セル中に登場しない1文字を 行列共に$で指定します。 |
区切り文字 | 区切り文字を行列共に$で指定します。 2文字以上でも問題ありません。 |
N番目 | 1以降の数字を指定します。 ここでは項目行に数値を記載して 行のみ$で指定しています。 |
これにより1以降の行(サンプルではD5以降)に分割された文字が表示されます。

Excelを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方、関数の解説(140種類)、
頻出テクニックと実用例(109種類)、
XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。