r6|【完全版】Excelで文字列を抽出する7つの方法!LEFT, RIGHT, MIDから新関数まで徹底解説


「住所データから都道府県だけを抜き出したい」「商品コードから必要な部分だけを抽出したい」

Excelに溜まったデータの中から、特定の文字だけを抽出したい、と思ったことはありませんか?

一つひとつ手作業でコピー&ペーストするのは大変な手間ですが、Excelの関数や機能を使えば、この作業を一瞬で終わらせることができます。

この記事では、文字列を抽出するための基本的な関数から、最新Excelで使える超便利な新機能まで、7つの方法を具体的なサンプル付きで分かりやすく解説します。


目次

1. 【基本】左から〇文字を抽出する「LEFT関数」

LEFT(レフト)関数は、セルの左端から指定した文字数だけを抽出する、最も基本的な関数です。

=LEFT(対象セル, 文字数)

サンプル: A列の「社員コード」から、左端3文字の「部署コード」を抽出します。

AB
1社員コード部署コード
2A01-1055=LEFT(A2, 3)
3B02-2108=LEFT(A3, 3)

B2セルの結果:

A01

2. 【基本】右から〇文字を抽出する「RIGHT関数」

RIGHT(ライト)関数は、LEFT関数の逆で、セルの右端から指定した文字数だけを抽出します。

=RIGHT(対象セル, 文字数)

サンプル: A列の「社員コード」から、右端4文字の「個人番号」を抽出します。

AB
1社員コード個人番号
2A01-1055=RIGHT(A2, 4)
3B02-2108=RIGHT(A3, 4)

B2セルの結果:

1055

3. 【基本】真ん中の文字を抽出する「MID関数」

MID(ミッド)関数は、文字列の途中から、指定した文字数だけを抽出できます。「開始位置」と「文字数」の2つを指定するのが特徴です。

=MID(対象セル, 開始位置, 文字数)

サンプル: A列の「YYYYMMDD」形式の日付から、「月(MM)」にあたる5文字目から2文字分を抽出します。

AB
1日付
220250718=MID(A2, 5, 2)
320250801=MID(A3, 5, 2)

B2セルの結果:

07

4. 特定の文字を目印に抽出する「FIND関数 + MID関数」

「ハイフン(-)の後ろの文字だけ」「(かっこ)の中だけ」のように、文字数が決まっていない場合は、FIND(ファインド)関数を組み合わせることで対応できます。

FIND関数は、指定した文字が左から何番目にあるかを数値で返します。

サンプル: A列の「商品名(メーカー名)」から、「メーカー名」だけを正確に抽出します。ここでは、開きかっこ(と閉じかっこ)の位置を両方FIND関数で探し、その間の文字数を計算してMID関数で抽出します。

AB
1商品情報メーカー名
2リンゴ(青森産)=MID(A2, FIND("(", A2) + 1, FIND(")", A2) - FIND("(", A2) - 1)
3ミカン(愛媛産)=MID(A3, FIND("(", A3) + 1, FIND(")", A3) - FIND("(", A3) - 1)

B2セルの結果:

青森産

解説:

  • FIND("(", A2) + 1 で抽出の開始位置(の次の文字)を特定します。
  • FIND(")", A2) - FIND("(", A2) - 1 で抽出したい文字数()の間の文字数)を計算しています。

5. 【新常識】テキストの前/後を抽出「TEXTBEFORE / TEXTAFTER関数」

Excel 2021またはMicrosoft 365をお使いなら、TEXTBEFORETEXTAFTER関数が圧倒的に便利です。複雑な組み合わせはもう必要ありません。

  • TEXTBEFORE: 指定した文字の前の部分を抽出します。
  • TEXTAFTER: 指定した文字の後の部分を抽出します。

サンプル: A列から「商品名」と「メーカー名」をそれぞれ抽出します。

ABC
1商品情報商品名メーカー名
2リンゴ(青森産)=TEXTBEFORE(A2, "(")=TEXTBEFORE(TEXTAFTER(A2, "("), ")")
3ミカン(愛媛産)=TEXTBEFORE(A3, "(")=TEXTBEFORE(TEXTAFTER(A3, "("), ")")

B2セルの結果:

リンゴ

C2セルの結果:

青森産

解説:

C2セルの数式では、TEXTAFTERでまず「(」より後ろの「青森産)」を抽出し、その結果からさらにTEXTBEFOREで「)」より前を抽出しています。


6. 【新常識】区切り文字で一括分割「TEXTSPLIT関数」

TEXTSPLIT(テキストスプリット)関数は、一つのセルに入った文字列を、指定した区切り文字で複数のセルに一気に分割・抽出してくれる超強力な関数です。

=TEXTSPLIT(対象セル, 区切り文字)

サンプル: A列の住所を、「、」を区切り文字としてB, C, D列に分割します。B2セルに数式を一つ入力するだけです。

AB
1住所
2東京都、千代田区、丸の内=TEXTSPLIT(A2, "、")
3大阪府、大阪市北区、梅田=TEXTSPLIT(A3, "、")

結果:

B2に数式を入れると、結果がB2, C2, D2に自動で表示(スピル)されます。

ABCD
1住所
2東京都、千代田区、丸の内東京都千代田区丸の内
3大阪府、大阪市北区、梅田大阪府大阪市北区梅田

7. 【関数不要】マウス操作だけで抽出「フラッシュフィル」

関数がどうしても苦手…という方には「フラッシュフィル」がおすすめです。これは、Excelが入力されたパターンを自動で認識して、残りを一瞬で入力してくれる魔法のような機能です。

使い方:

  1. データを入力したい列の先頭セル(下の例ではB2セル)に、抽出したい文字を手で入力します。
  2. Enterキーを押して確定し、次のセル(B3)に移動します。
  3. 2つ目のデータも手で入力し始めると、Excelがパターンを推測して、薄いグレーでプレビューを表示してくれます。
  4. プレビューが表示されたら、そのままEnterキーを押すだけで確定されます。

サンプル: A列から「部署コード」だけを抽出します。

AB
1社員コード部署コード
2A01-1055A01 (←手で入力)
3B02-2108B02 (←プレビューが表示されたらEnter!)
4C01-3040C01 (←自動で入力される)
5D03-1199D03 (←自動で入力される)

この機能は、[データ] タブの [フラッシュフィル] ボタン、またはショートカットキー Ctrl + E でも実行できます。


まとめ:目的別の最適な方法

目的おすすめの方法
決まった文字数を抽出したいLEFT, RIGHT, MID
特定の文字を目印に抽出したいFIND + MID (旧) / TEXTBEFORE, TEXTAFTER (新)
区切り文字で一気に複数セルに分けたいTEXTSPLIT
関数を使わず手軽にやりたいフラッシュフィル

文字列の抽出は、データクレンジングや分析の第一歩として欠かせないスキルです。ぜひこれらの方法をマスターして、面倒な手作業から解放されましょう!

サンプルデータダウンロード 📁

この記事で解説した内容を、実際にあなたのExcelで試してみませんか? 以下のリンクから、解説に使用したサンプルデータをダウンロードできます。数式がすでに入力されているので、書き換えたり、ご自身のデータに応用したりして、理解を深めてみてください。

解説ブログでご紹介したExcelの関数と機能は以下の通りです。

使用した関数リスト

  • LEFT関数: 文字列の左端から指定した文字数を抽出します。
  • RIGHT関数: 文字列の右端から指定した文字数を抽出します。
  • MID関数: 文字列の途中から指定した文字数を抽出します。
  • FIND関数: 特定の文字がどこにあるかを探し、その位置を返します。
  • TEXTBEFORE関数: 特定のテキストより前の部分を抽出します。(Microsoft 365 / Excel 2021以降)
  • TEXTAFTER関数: 特定のテキストより後の部分を抽出します。(Microsoft 365 / Excel 2021以降)
  • TEXTSPLIT関数: 区切り文字で文字列を複数のセルに分割します。(Microsoft 365 / Excel 2021以降)

使用した機能

  • フラッシュフィル: 関数を使わず、入力パターンをExcelに自動認識させて抽出する機能です。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次