- 公開日:
エクセルで列の分割をする方法
この記事では、エクセルで列を分割する方法をご紹介します。
列の分割は例えばエクセルで名簿を作成した際に、名前のデータを姓と名で別々の列に分割したい場合などに便利に使うことができる方法です。
いちいちデータを他の列にコピーせずにすむので効率よく作業できます。
列の分割はできる?

エクセルではワードの表のように列を分割することはできません。
一旦結合したセルの「結合を解除」することで分割することはできますが、シート上のセルをさらに上下左右に細かく分割することはできません。
ただし、セル内の文字列を分割する方法はあります。
セル内に入力した文字を分割して別のセルに表示させる方法をご紹介します。
TEXTSPLIT関数について
エクセルで文字列を分割できる関数に「TEXTSPLIT関数」があります。
TEXTSPLIT関数は2022年8月頃にMicrosoft 365にのみ追加された関数です。
書式は、「=TEXTSPLIT(文字列,列区切り,[行区切り],[空を無視],[一致モード],[埋めるセル値])」です。
引数は以下の表のとおりです。
引数 | 説明 |
---|---|
文字列 | (必須)分割したいテキストまたは、データ範囲 |
列区切り | (必須)列を分割する文字または文字列 ダブルクォーテーションで囲んで使用する 複数の文字列を指定する場合は、配列数式にしてカンマで繋ぐ |
[行区切り] | 行を分割する文字または文字列 |
[空を無視] | 区切り文字の間が空の場合どうするかを指定 FALSE →空欄を無視しない(省略した場合はFALSE) TRUE → 空欄を無視する |
[一致モード] | 0→大文字と小文字を区別する(省略時は0) 1→ 指定で大文字と小文字を区別しない |
[埋めるセル値] | 行のデータが不足している場合に表示する値 省略した場合は、 #N/Aで埋められる |
下記は、TEXTSPLIT関数の使用例です。
「ABC」という文字列について、カンマで区切る場合と空白で区切る場合をご紹介しています。

詳しい使い方は、以下の「エクセルで列の分割をする方法」セクションでご説明しています。
エクセルで列の分割をする方法
以下では、TEXTSPLIT関数を使って列を分割する方法をご紹介します。今回使用するTEXTSPLIT関数は、「Microsoft 365」の環境下のみで使用できる関数です。

B列に入力されている名前の一覧をTEXTSPLIT関数を使って「姓」と「名」で別々の列に分割します。今回は、姓と名の間に空白が入っているため「空白で分割する」と指定したいので、任意のセル(例:C2セル)に「=TEXTSPLIT(B2," ")」を入力し、Enterを押します。

B列の名前が姓と名で分割されました。数式を他のセルにもコピーします。関数を入力したセル(例:C2セル)の右下にあるフィルハンドルを表の一番下までドラッグします。

名前の一覧を「姓」と「名」で分けることができました。
区切り位置を指定して分割する方法

データタブの「区切り位置」から文字列をカンマやスペースで分割することができます。
TEXTSPLIT関数が使用できない場合や、関数を使うことが苦手な人におすすめです。
以下の記事「文字列を区切り文字(カンマやスペース)で分割する」セクションでご紹介します。
フラッシュフィルを使って列を分割する方法

フラッシュフィルを使うとTEXTSPLIT関数と同じように列を分割することができます。
上記の画像は、フラッシュフィルを使ってB列の名前をC列に「姓」、D列に「名」と分割した例です。
フラッシュフィルとは、データの法則性を見つけ出してセルに自動入力する機能です。
以下の記事では、フラッシュフィルが機能しない原因もご紹介していますので参考にしてみてください。
セルの結合を使って文字列を分割する方法

セルを分割することはできませんが、上記の画像のようにセルを結合することで、C6セルとD6セルが分割したように見せることができます。
以下の記事、「行が分割された状態のデータを作成する」セクションでご紹介しています。