cellio

Excelで文字列を分割する方法:スペース・カンマ・ハイフン区切り

Excelでセル内の文字列を分割する4つの方法を解説。区切り位置指定ウィザード、フラッシュフィル、TEXTSPLIT関数、LEFT・MID・FIND関数の使い分けを紹介します。氏名や住所、商品コードの分割に役立つ実用ガイドです。

著者 Ayoub Farid · · 4 分で読めます

「田中 太郎」を姓と名に分ける、「東京都、日本」を都道府県と国名に分ける、「INV-2026-0042」をコードごとにセルへ分けるなど、Excelで文字列を分割したい場面はよくあります。Excelには専用のボタン、ショートカットキー、そしてエクセル関数を使った方法が用意されています。元のデータが変更されたときに結果を自動更新させたいかどうかに応じて、最適な方法を選びましょう。

1. 区切り位置(1回限りの分割向け)

  1. 分割したい列を選択します。
  2. データ > 区切り位置 をクリックします。
  3. カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ を選び、区切り文字(スペース、カンマ、その他:- など)を指定します。
  4. 隣接する列のデータを上書きしないよう、出力先のセル範囲を指定して完了します。

この方法は静的です。元のセルを編集しても、分割結果は自動更新されません。

2. フラッシュフィル(パターン認識)

最初の行の分割結果を手入力し(例:「田中 太郎」の隣のセルに「田中」と入力)、Ctrl + E を押します。Excelが規則性を自動で判別し、残りのセルを埋めてくれます。変則的な名前や形式では誤認識することもあるため、結果を数行確認しておきましょう。

3. TEXTSPLIT関数(Microsoft 365対応)

=TEXTSPLIT(A2," ")

区切られた各要素が、隣の列へと自動的にスピル(展開)されます。複数の区切り文字を同時に指定することも可能です:

=TEXTSPLIT(A2,{" ",",","-"})

また、TEXTBEFORE(A2," ") や TEXTAFTER(A2," ") も利用できます。Googleスプレッドシートの場合は =SPLIT(A2," ") を使用します。

4. 従来の数式(全バージョン対応)

苗字(姓)の取り出し:

=LEFT(A2,FIND(" ",A2)-1)

名前(名)の取り出し:

=RIGHT(A2,LEN(A2)-FIND(" ",A2))

「INV-2026-0042」の中央部分を取り出す数式:

=MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)

数式が長くなってしまいますが、まさにこの手間を解消するためにTEXTSPLIT関数が登場しました。詳しい仕組みはLEFT関数、RIGHT関数、MID関数の使い方をご覧ください。

注意すべきポイント

  • 連続したスペース:余分な空白列が生成されてしまいます。事前にTRIM関数で不要な空白を削除しておきましょう。
  • 3つのパーツに分かれる氏名(ミドルネームがある場合など):どの位置で分割するかあらかじめルールを決めておく必要があります。
  • 先頭のゼロ(0落ち):「00042」を区切り位置機能で分割すると、数値と認識されて「42」になってしまいます。ステップ3の画面で、その列の表示形式を「文字列」に指定してください。

よくある質問

Excelで1つのセルを2つの列に分割するにはどうすればよいですか?

「データ」タブの「区切り位置」機能を使うか、Microsoft 365であれば =TEXTSPLIT(A2," ") を使用します。

氏名の姓と名を分割するにはどうすればよいですか?

=LEFT(A2,FIND(" ",A2)-1) と =RIGHT(A2,LEN(A2)-FIND(" ",A2)) を組み合わせることで分割できます。

Googleスプレッドシートでテキストを分割する方法は?

=SPLIT(A2," ") 関数を使うか、メニューの「データ > テキストを列に分割」を使用します。

改行で文字列を分割することはできますか?

はい、可能です。数式なら =TEXTSPLIT(A2,CHAR(10)) を使用し、「区切り位置」機能を使う場合は「その他」にチェックを入れてショートカットキーの Ctrl + J を入力します。

あわせて読みたい