Excel CSVなどの文字列の分割を関数で行う方法

カンマなど特定の文字で区切られている文字列を

セルごとに分割する方法がExcelでは三つあります。

それぞれ下記の特徴があります。

方法特徴
テキストファイルウィザード柔軟性が高いが手間も大きい。
定型化されていない業務に適切。
文字列関数一度関数を作れば、その後の手間が小さい。
ただし数式が非常に複雑。
何度も分割を行う場合に適切。
ユーザ定義関数(マクロ・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を効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り1,250円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

他の方法で区切り文字列の分割を行う

テキストファイルウィザード

ユーザ定義関数(マクロ・VBA)

活用例

姓と名(苗字と名前)を結合・分割する方法

Power Automate Desktop

「テキストの分割」アクション