Excelの関数で文字列を区切り文字で区切る方法

テーマはエクセルの関数 Excelの話

Excelで文字列を特定の区切り文字(今回はハイフン”-“)で分割する方法を解説します。この例では「012-3456-7890」を区切り、以下の3つの部分に分割します:

  • 012
  • 3456
  • 7890

ここでは、次の2つの方法を紹介します。


① TEXTSPLIT関数を使う方法

ExcelのTEXTSPLIT関数を使用すれば、簡単に文字列を分割できます。この関数は、文字列を指定した区切り文字で分割し、結果を複数のセルに出力します。

=TEXTSPLIT(元の文字列, 横方向区切り文字, 縦方向区切り文字)

を使います。(縦方向区切り文字の引数は省略可)

横方向に展開する

  1. 元の文字列「012-3456-7890」をセルA1に入力します。
  2. A2セルに以下の数式を入力します:=TEXTSPLIT(A1, "-")
  3. するとA2セルから横方向に自動的に展開されます。(数式を入れていないA3セルやA4セルにも結果が自動で展開されます。展開先のセルに値や数式が入ってる場合はエラーになり展開されませんのでご安心を。)

結果

  • A2: 012
  • B2: 3456
  • C2: 7890

縦方向に展開する手順

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

結果

  • A2: 012
  • A3: 3456
  • A4: 7890

TEXTSPLITは非常に簡単かつ直感的な方法です。分割結果が自動で展開されるため、複数の行や列にデータを展開する用途に便利です。


② TEXTBEFOREとTEXTAFTER関数を使う方法

TEXTBEFORETEXTAFTER関数を組み合わせることで、区切り文字の前後の文字列を取得できます。

n番目の区切り文字より前を取り出すには、「TEXTBEFORE(文字列, 区切り文字, n)」

n番目の区切り文字より後ろを取り出すには、「TEXTAFTER(文字列, 区切り文字, n)」

nを指定しない場合は「1」が指定されます。

手順

  1. 元の文字列「012-3456-7890」をセルA1に入力します。
  2. **最初の部分(012)**をA2セルに取得するには、以下の数式を使用します
    =TEXTBEFORE(A1, "-", 1)
  3. **2番目以降の部分(3456‐7890)**を取得するには、以下の数式を使用します
    =TEXTAFTER(A1, "-", 1)
  4. **2番目の部分(3456)**をA3セルに取得するには、3.の(3456‐7890)からTEXTBEFORE関数を使って”-“の前の部分を取り出す以下の数式を使用します
    =TEXTBEFORE(TEXTAFTER(A1, "-", 1), "-", 1)
  5. **最後の部分(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マクロ入門 [ 寺澤 伸洋 ]

コメント

タイトルとURLをコピーしました