日々のExcel業務では、セルの中に含まれる特定の文字やキーワードを取り出したい場面がよくあります。
例えば、「商品名に含まれるコードだけを抜き出したい」「住所の中から都道府県名だけを抽出したい」「特定の記号以降の文字を切り出したい」といったシーンです。
こうした処理を手作業で行うと時間がかかりますが、関数を組み合わせることで自動的に文字を抽出することが可能です。
この記事では、Excelの基本関数だけで「特定の文字を抽出する」テクニックを完全解説します。
業務の自動化やデータ整形、RPA(UiPathなど)連携の前処理にも役立つ内容です。
目次
- ✅ 特定の文字を抽出する基本:LEFT・RIGHT・MID関数の使い方
- ✅ 特定の文字の位置を探す:SEARCH関数とFIND関数の違い
- ・SEARCH関数の基本
- ・FIND関数との違い
- ✅ 「特定の文字の後ろ」を抽出する方法
- ✅ 「特定の文字の前」を抽出する方法
- ✅ 特定の単語を含む部分を抽出する方法
- ・部分一致で特定文字を取り出す構文
- ✅ 「特定の文字から始まる」データを抽出する方法
- ✅ 「特定の文字を含む」行を抽出する方法(FILTER関数)
- ✅ 複数の文字列を同時に抽出する方法
- ✅ 「特定の文字を含むセルの一部」だけを抽出するテクニック
- ✅ TEXTBEFORE・TEXTAFTER関数を使えばさらに簡単!
- ・特定文字より前を抽出:TEXTBEFORE関数
- ・特定文字より後を抽出:TEXTAFTER関数
- ✅ 応用:住所やメールアドレスの一部を抽出する実践例
- ・住所から都道府県名を抽出する
- ・メールアドレスのドメインを抽出する
- ✅ 抽出後の活用:分類・条件付き書式・RPA連携
- ✅ まとめ:特定の文字を自在に抽出してExcel作業を効率化しよう
✅ 特定の文字を抽出する基本:LEFT・RIGHT・MID関数の使い方
まずは、Excelで文字を抽出する際の基本となる3つの関数を整理しておきましょう。
関数 | 抽出の方向 | 使い方の例 |
---|---|---|
LEFT | 左側(先頭)から | "=LEFT(A2,3)" → A2の左3文字を取得 |
RIGHT | 右側(末尾)から | "=RIGHT(A2,2)" → A2の右2文字を取得 |
MID | 中央(途中)から | "=MID(A2,4,3)" → A2の4文字目から3文字分取得 |
この3つの関数をうまく使い分けることで、文字列のどの位置からでも特定の部分を抜き出すことができます。
特にMID関数は柔軟性が高く、SEARCH関数と組み合わせると非常に強力になります。
✅ 特定の文字の位置を探す:SEARCH関数とFIND関数の違い
・SEARCH関数の基本
"=SEARCH("A",A2)"
この式は、セルA2内で「A」が登場する位置を返します。
例えばA2が「ABC123」であれば、結果は「1」となります。
もし「A」が2文字目にあれば「2」が返り、含まれていない場合はエラー(#VALUE!)になります。
・FIND関数との違い
SEARCH関数と似た働きをするのがFIND関数です。
ただし、以下のような違いがあります。
関数 | 大文字・小文字の区別 | ワイルドカード使用 | 主な用途 |
---|---|---|---|
SEARCH | 区別しない | 〇 | 一般的な文字検索 |
FIND | 区別する | × | 英文コードなどでの厳密検索 |
多くの日本語データではSEARCH関数を使う方が便利です。
✅ 「特定の文字の後ろ」を抽出する方法
例えば、セル内の「商品A_001」から「_」以降の「001」だけを抽出したいとします。
このような場合に使える構文が次の通りです。
"=MID(A2,SEARCH("_",A2)+1,LEN(A2))"
処理の流れは以下の通りです。
- SEARCH("",A2):アンダースコア「」の位置を探す
- +1:その次の文字から取り出す
- LEN(A2):文字数の上限(最後まで取得)
これにより、どの位置に「_」があっても、その後ろの文字列だけを自動で抽出できます。
特に商品コードや社員番号など、構造化された文字列の抽出でよく使われる方法です。
参考:【Excel】検索システムを作る方法(マクロなし)まとめ|関数と機能で簡単構築
✅ 「特定の文字の前」を抽出する方法
逆に、「_より前」の文字を抽出したい場合は次の式を使います。
"=LEFT(A2,SEARCH("_",A2)-1)"
この式では、SEARCHで「_」の位置を特定し、その直前までの文字をLEFT関数で取り出します。
これにより、「商品A_001」から「商品A」だけを取得可能です。
このテクニックは、ファイル名から日付や種類を切り出すときなどにも応用できます。
例えば「report_2025.xlsx」から「report」だけを抜き出したい場合も同じ構文が使えます。
✅ 特定の単語を含む部分を抽出する方法
・部分一致で特定文字を取り出す構文
文中に特定の単語を含む部分だけを抽出したいときには、SEARCH関数+MID関数の組み合わせを使います。
例:「住所」セルに「東京都渋谷区桜丘町15-3」とあり、「渋谷区」だけを抽出したい場合
"=MID(A2,SEARCH("渋谷区",A2),3)"
この式では、「渋谷区」という文字が始まる位置から3文字分を取り出します。
取り出す文字数(ここでは3)は、抽出したい語の長さに合わせて調整します。
参考:【Excel】「範囲内にあれば」を判定する関数まとめ|存在チェックの基本と応用
✅ 「特定の文字から始まる」データを抽出する方法
先頭が特定の文字で始まる場合のみを抽出したいときは、IF関数+LEFT関数の組み合わせを使います。
"=IF(LEFT(A2,2)="AB",A2,"")"
この式では、「AB」で始まるデータだけが表示され、該当しないセルは空白になります。
フィルターをかけて空白を除けば、「AB」で始まる項目だけを簡単に抽出できます。
大量データから先頭条件で分類したい場合、IF+LEFTは非常に実用的です。
✅ 「特定の文字を含む」行を抽出する方法(FILTER関数)
Microsoft 365やExcel 2021以降を使っている場合は、FILTER関数を使えばワンクリックで抽出可能です。
"=FILTER(A2:A100,ISNUMBER(SEARCH("A",A2:A100)))"
この式では、A列に「A」を含むすべてのセルが抽出されます。
FILTER関数は動的配列に対応しており、結果が自動的に下方向へ展開されるため、いちいちコピーする必要がありません。
従来のIF+検索関数のような複雑な式を組まなくても済むのが魅力です。
データ件数が多い場合でも軽快に動作し、作業効率を大きく改善できます。
✅ 複数の文字列を同時に抽出する方法
「A」または「B」を含むデータを同時に抽出したい場合は、OR条件を使います。
"=FILTER(A2:A100,(ISNUMBER(SEARCH("A",A2:A100)))+(ISNUMBER(SEARCH("B",A2:A100))))"
FILTER関数はTRUE/FALSEの配列を条件に取るため、OR条件を「+」で表現します。
AND条件の場合は「*」を使います。
複数キーワードの同時抽出は、顧客名・商品名・メールアドレスなどのフィルタリングで非常に役立ちます。
参考:【Excel】複数の文字列を関数で一括置換する方法|SUBSTITUTE関数・置換リストの解説
✅ 「特定の文字を含むセルの一部」だけを抽出するテクニック
SEARCH関数で位置を特定したあと、MID関数で部分的に抽出すれば、任意の範囲を自由に取り出せます。
例えば、「商品A_001_東京」という文字列から「001」部分だけを抜き出したい場合:
- 最初の「」の位置を求める:
"=SEARCH("",A2)" - 2つ目の「」の位置を求める:
"=SEARCH("",A2,SEARCH("_",A2)+1)" - その間の部分を抽出:
"=MID(A2,SEARCH("",A2)+1,SEARCH("",A2,SEARCH("",A2)+1)-SEARCH("",A2)-1)"
少し複雑ですが、この方法を覚えておくと区切り文字を基準にした抽出が自在にできます。
特にシステム出力データでは「_」や「-」などの区切り文字が多く、このパターンは頻出です。
✅ TEXTBEFORE・TEXTAFTER関数を使えばさらに簡単!
Excel 365では、文字抽出を劇的に簡単にする新関数が登場しています。
・特定文字より前を抽出:TEXTBEFORE関数
"=TEXTBEFORE(A2,"_")"
「_」より前の部分だけを簡単に取得できます。
従来のLEFT+SEARCHのような複雑な組み合わせは不要です。
・特定文字より後を抽出:TEXTAFTER関数
"=TEXTAFTER(A2,"_")"
「_」以降の文字を一発で抽出できます。
この2つの関数を覚えておくと、データ整形のスピードが一気に上がります。
✅ 応用:住所やメールアドレスの一部を抽出する実践例
・住所から都道府県名を抽出する
"=LEFT(A2,SEARCH("県",A2))"
この式は、「愛知県名古屋市中区」といった住所から「愛知県」を抽出します。
「都」「府」「道」に対応する場合は、IF関数とOR関数を組み合わせると柔軟に対応可能です。
参考:【Excel】住所が昇順に並ばないときの原因と解決方法|正しい並べ替え手順と実務での活用
・メールアドレスのドメインを抽出する
"=TEXTAFTER(A2,"@")"
「user@example.com」から「example.com」だけを取り出せます。
TEXTAFTERが使えないバージョンでは次のように代用できます。
"=MID(A2,SEARCH("@",A2)+1,LEN(A2))"
このように、業務でよく扱うデータの整形にも簡単に応用できます。
✅ 抽出後の活用:分類・条件付き書式・RPA連携
文字を抽出することで、Excel上でデータの分類が容易になります。
たとえば「ドメイン別のメール一覧」「都道府県別顧客数」「商品コード別集計」などの表を自動で作成できます。
また、抽出した文字を基に条件付き書式を設定すれば、「特定文字を含むセルを自動で色分け」することも可能です。
RPAツール(UiPathなど)を利用している場合も、Excel側で抽出と整形を済ませておくと後工程の処理がシンプルになります。
自動化処理の安定性を高める上でも、抽出関数の活用は重要なスキルです。
✅ まとめ:特定の文字を自在に抽出してExcel作業を効率化しよう
- LEFT・RIGHT・MID関数で文字列の一部を取り出せる
- SEARCH関数で特定文字の位置を探し、柔軟な抽出条件を設定できる
- FILTER関数で特定文字を含む行だけを抽出可能
- TEXTBEFORE/TEXTAFTER関数を使えばより簡単に処理できる
- 抽出結果を使って分類・条件付き書式・自動化に応用できる
Excelでの「特定の文字抽出」は、単なる関数操作にとどまらず、データ整形・分類・自動化の基礎となる重要スキルです。
慣れてくると、手作業での検索や置換作業がほとんど不要になり、業務時間を大幅に短縮できます。
ぜひこの記事で紹介した方法を実務に取り入れ、Excelをデータ処理の強力な武器として活用してください。