Excelで文字列を特定の区切り文字(今回はハイフン”-“)で分割する方法を解説します。この例では「012-3456-7890」を区切り、以下の3つの部分に分割します:
- 012
- 3456
- 7890
ここでは、次の2つの方法を紹介します。
① TEXTSPLIT関数を使う方法
ExcelのTEXTSPLIT関数を使用すれば、簡単に文字列を分割できます。この関数は、文字列を指定した区切り文字で分割し、結果を複数のセルに出力します。
=TEXTSPLIT(元の文字列, 横方向区切り文字, 縦方向区切り文字)
を使います。(縦方向区切り文字の引数は省略可)
横方向に展開する
- 元の文字列「012-3456-7890」をセル
A1に入力します。 - A2セルに以下の数式を入力します:
=TEXTSPLIT(A1, "-") - するとA2セルから横方向に自動的に展開されます。(数式を入れていないA3セルやA4セルにも結果が自動で展開されます。展開先のセルに値や数式が入ってる場合はエラーになり展開されませんのでご安心を。)
結果

- A2: 012
- B2: 3456
- C2: 7890
縦方向に展開する手順
- 元の文字列「012-3456-7890」をセル
A1に入力します。 A2セルに以下の数式を入力します:=TEXTSPLIT(A1, ,"-")
ポイントは2つ目の引数は無しにして、3つ目の引数に区切り文字の”-“を指定します。- するとA2セルから縦方向に自動的に展開されます。
結果

- A2: 012
- A3: 3456
- A4: 7890
TEXTSPLITは非常に簡単かつ直感的な方法です。分割結果が自動で展開されるため、複数の行や列にデータを展開する用途に便利です。
② TEXTBEFOREとTEXTAFTER関数を使う方法
TEXTBEFOREとTEXTAFTER関数を組み合わせることで、区切り文字の前後の文字列を取得できます。
n番目の区切り文字より前を取り出すには、「TEXTBEFORE(文字列, 区切り文字, n)」
n番目の区切り文字より後ろを取り出すには、「TEXTAFTER(文字列, 区切り文字, n)」
nを指定しない場合は「1」が指定されます。
手順
- 元の文字列「012-3456-7890」をセル
A1に入力します。 - **最初の部分(012)**をA2セルに取得するには、以下の数式を使用します
=TEXTBEFORE(A1, "-", 1) - **2番目以降の部分(3456‐7890)**を取得するには、以下の数式を使用します
=TEXTAFTER(A1, "-", 1) - **2番目の部分(3456)**をA3セルに取得するには、3.の(3456‐7890)からTEXTBEFORE関数を使って”-“の前の部分を取り出す以下の数式を使用します
=TEXTBEFORE(TEXTAFTER(A1, "-", 1), "-", 1) - **最後の部分(7890)**をA4セル取得するには、以下の数式を使用します
=TEXTAFTER(A1, "-", 2)
結果
| セル | 数式 | 出力 |
|---|---|---|
| A2 | =TEXTBEFORE(A1, "-", 1) | 012 |
| A3 | =TEXTBEFORE(TEXTAFTER(A1, "-", 1), "-", 1) | 3456 |
| A4 | =TEXTAFTER(A1, "-", 2) | 7890 |

まとめ
- TEXTSPLIT関数: シンプルで、複数のセルに文字列を一括分割できます。
- TEXTBEFORE/TEXTAFTER関数: 特定の部分だけを取り出したい場合に便利です。
どちらの方法も使いやすいので、目的に応じて選んでみてください!
4時間のエクセル仕事は20秒で終わる ノンプログラマーのGAFA部長が教えるExcelマクロ入門 [ 寺澤 伸洋 ]

コメント