「住所データから都道府県だけを抜き出したい」「商品コードから必要な部分だけを抽出したい」
Excelに溜まったデータの中から、特定の文字だけを抽出したい、と思ったことはありませんか?
一つひとつ手作業でコピー&ペーストするのは大変な手間ですが、Excelの関数や機能を使えば、この作業を一瞬で終わらせることができます。
この記事では、文字列を抽出するための基本的な関数から、最新Excelで使える超便利な新機能まで、7つの方法を具体的なサンプル付きで分かりやすく解説します。
1. 【基本】左から〇文字を抽出する「LEFT関数」
LEFT
(レフト)関数は、セルの左端から指定した文字数だけを抽出する、最も基本的な関数です。
=LEFT(対象セル, 文字数)
サンプル: A列の「社員コード」から、左端3文字の「部署コード」を抽出します。
A | B | |
1 | 社員コード | 部署コード |
2 | A01-1055 | =LEFT(A2, 3) |
3 | B02-2108 | =LEFT(A3, 3) |
B2セルの結果:
A01
2. 【基本】右から〇文字を抽出する「RIGHT関数」
RIGHT
(ライト)関数は、LEFT
関数の逆で、セルの右端から指定した文字数だけを抽出します。
=RIGHT(対象セル, 文字数)
サンプル: A列の「社員コード」から、右端4文字の「個人番号」を抽出します。
A | B | |
1 | 社員コード | 個人番号 |
2 | A01-1055 | =RIGHT(A2, 4) |
3 | B02-2108 | =RIGHT(A3, 4) |
B2セルの結果:
1055
3. 【基本】真ん中の文字を抽出する「MID関数」
MID
(ミッド)関数は、文字列の途中から、指定した文字数だけを抽出できます。「開始位置」と「文字数」の2つを指定するのが特徴です。
=MID(対象セル, 開始位置, 文字数)
サンプル: A列の「YYYYMMDD」形式の日付から、「月(MM)」にあたる5文字目から2文字分を抽出します。
A | B | |
1 | 日付 | 月 |
2 | 20250718 | =MID(A2, 5, 2) |
3 | 20250801 | =MID(A3, 5, 2) |
B2セルの結果:
07
4. 特定の文字を目印に抽出する「FIND関数 + MID関数」
「ハイフン(-)の後ろの文字だけ」「(かっこ)の中だけ」のように、文字数が決まっていない場合は、FIND
(ファインド)関数を組み合わせることで対応できます。
FIND
関数は、指定した文字が左から何番目にあるかを数値で返します。
サンプル: A列の「商品名(メーカー名)」から、「メーカー名」だけを正確に抽出します。ここでは、開きかっこ(
と閉じかっこ)
の位置を両方FIND
関数で探し、その間の文字数を計算してMID
関数で抽出します。
A | B | |
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をお使いなら、TEXTBEFORE
とTEXTAFTER
関数が圧倒的に便利です。複雑な組み合わせはもう必要ありません。
TEXTBEFORE
: 指定した文字の前の部分を抽出します。TEXTAFTER
: 指定した文字の後の部分を抽出します。
サンプル: A列から「商品名」と「メーカー名」をそれぞれ抽出します。
A | B | C | |
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セルに数式を一つ入力するだけです。
A | B | |
1 | 住所 | |
2 | 東京都、千代田区、丸の内 | =TEXTSPLIT(A2, "、") |
3 | 大阪府、大阪市北区、梅田 | =TEXTSPLIT(A3, "、") |
結果:
B2に数式を入れると、結果がB2, C2, D2に自動で表示(スピル)されます。
A | B | C | D | |
1 | 住所 | |||
2 | 東京都、千代田区、丸の内 | 東京都 | 千代田区 | 丸の内 |
3 | 大阪府、大阪市北区、梅田 | 大阪府 | 大阪市北区 | 梅田 |
7. 【関数不要】マウス操作だけで抽出「フラッシュフィル」
関数がどうしても苦手…という方には「フラッシュフィル」がおすすめです。これは、Excelが入力されたパターンを自動で認識して、残りを一瞬で入力してくれる魔法のような機能です。
使い方:
- データを入力したい列の先頭セル(下の例ではB2セル)に、抽出したい文字を手で入力します。
- Enterキーを押して確定し、次のセル(B3)に移動します。
- 2つ目のデータも手で入力し始めると、Excelがパターンを推測して、薄いグレーでプレビューを表示してくれます。
- プレビューが表示されたら、そのままEnterキーを押すだけで確定されます。
サンプル: A列から「部署コード」だけを抽出します。
A | B | |
1 | 社員コード | 部署コード |
2 | A01-1055 | A01 (←手で入力) |
3 | B02-2108 | B02 (←プレビューが表示されたらEnter!) |
4 | C01-3040 | C01 (←自動で入力される) |
5 | D03-1199 | D03 (←自動で入力される) |
この機能は、[データ] タブの [フラッシュフィル] ボタン、またはショートカットキー 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に自動認識させて抽出する機能です。
コメント