【Excel】エクセルで特定の文字を抽出する方法(含むセルを関数で取り出す・複数条件)
Excelを使っていると、「特定の文字が含まれているセルだけを取り出したい」「条件に合ったデータを関数で自動的に抽出したい」と感じる場面は多いのではないでしょうか。
手作業で探し出すのは時間がかかるうえ、ミスも発生しやすくなります。
しかし、ExcelにはIF関数・FIND関数・FILTER関数・ISNUMBER関数など、文字列の抽出に役立つ関数が豊富に用意されています。
これらを組み合わせることで、特定の文字を含むセルを素早く・正確に取り出すことが可能です。
本記事では、特定の文字を抽出する基本的な方法から、複数条件を使った応用テクニックまでをわかりやすく解説していきます。
初心者の方でも実践できるよう、具体的な数式例を交えながら丁寧に説明しますので、ぜひ最後までご覧ください。
Excelで特定の文字を含むセルを抽出するには関数の組み合わせが鍵
それではまず、Excelで特定の文字を含むセルを抽出する方法の全体像について解説していきます。
結論からお伝えすると、Excelで特定の文字を抽出するには、FIND関数・SEARCH関数・ISNUMBER関数・IF関数などを組み合わせるのが基本的なアプローチとなります。
それぞれの関数には得意・不得意がありますが、組み合わせることで柔軟な条件に対応できます。
まず代表的な関数の役割を整理しておきましょう。
| 関数名 | 主な役割 | 特徴 |
|---|---|---|
| FIND関数 | 特定の文字が何文字目にあるかを返す | 大文字・小文字を区別する |
| SEARCH関数 | 特定の文字が何文字目にあるかを返す | 大文字・小文字を区別しない |
| ISNUMBER関数 | 値が数値かどうかを判定する | FINDと組み合わせて「含む」判定に使う |
| IF関数 | 条件に応じて処理を分岐する | 抽出結果の表示切り替えに使う |
| FILTER関数 | 条件に合う行を丸ごと抽出する | Excel 2019以降・Microsoft 365で利用可能 |
これらの関数の特性を把握しておくことで、目的に合った数式をスムーズに作成できるようになります。
次の章から、それぞれの具体的な使い方を順番に見ていきましょう。
ポイントとして、FIND関数単体では「文字が見つからない場合にエラーになる」という性質があります。
そのため、ISNUMBER関数と組み合わせてエラーを回避しながら「含む・含まない」を判定するのが実践的な使い方です。
FIND関数・ISNUMBER関数・IF関数を使った基本的な抽出方法
続いては、FIND関数・ISNUMBER関数・IF関数を組み合わせた基本的な抽出方法を確認していきます。
この組み合わせは、「特定の文字が含まれているかどうかをセル単位で判定し、結果を表示する」という用途に最も広く使われています。
FIND関数で文字の位置を調べる
FIND関数は、指定した文字列が対象セルの何文字目にあるかを数値で返す関数です。
文字が見つかった場合は位置(数値)を返し、見つからなかった場合はエラー(#VALUE!)を返します。
書式:=FIND(検索文字列, 対象, [開始位置])
例:=FIND(“東京”, A2)
→ A2セルに「東京」が含まれていれば、その開始位置の数値を返します。
この性質を利用し、「数値が返ってくれば含んでいる」「エラーなら含んでいない」という判定ができます。
ISNUMBER関数でエラーを回避して「含む」を判定する
FIND関数が返す値が数値かどうかをISNUMBER関数で判定することで、エラーを表示させずに「含む・含まない」を判定できます。
書式:=ISNUMBER(FIND(“検索文字列”, 対象セル))
例:=ISNUMBER(FIND(“東京”, A2))
→ A2に「東京」が含まれていれば TRUE、含まれていなければ FALSE を返します。
TRUEまたはFALSEという論理値で返ってくるため、このあとのIF関数との連携がしやすくなります。
IF関数で抽出結果を見やすく表示する
さらにIF関数を組み合わせることで、「含む場合は〇、含まない場合は空白」のように、わかりやすい形で結果を表示できます。
書式:=IF(ISNUMBER(FIND(“検索文字列”, 対象セル)), 真の場合, 偽の場合)
例:=IF(ISNUMBER(FIND(“東京”, A2)), “該当”, “”)
→ A2に「東京」が含まれていれば「該当」、含まれていなければ空白を表示します。
この3つの関数の組み合わせは、ExcelのどのバージョンでもOKなため、互換性の面でも非常に使いやすい方法です。
FILTER関数で特定の文字を含む行を丸ごと抽出する方法
続いては、FILTER関数を使って特定の文字を含む行を丸ごと抽出する方法を確認していきます。
FILTER関数はMicrosoft 365やExcel 2021以降で使える比較的新しい関数で、条件に合う行全体を一気に取り出せる非常に強力な機能です。
FILTER関数の基本的な使い方
FILTER関数の書式はシンプルで、「配列」「含む(条件)」「空の場合」の3つを指定するだけです。
書式:=FILTER(配列, 含む, [空の場合])
例:=FILTER(A2:C10, ISNUMBER(FIND(“東京”, A2:A10)), “該当なし”)
→ A2:A10の範囲で「東京」を含む行をA列〜C列まるごと抽出します。
従来の方法ではIF関数を各行に入力する必要がありましたが、FILTER関数なら1つの数式で複数行のデータを一括抽出できます。
SEARCH関数との組み合わせで大文字・小文字を区別しない抽出
英語のデータを扱う際など、大文字・小文字を区別せずに検索したい場合は、FIND関数の代わりにSEARCH関数を使いましょう。
例:=FILTER(A2:C10, ISNUMBER(SEARCH(“tokyo”, A2:A10)), “該当なし”)
→ 「Tokyo」「TOKYO」「tokyo」など大文字・小文字を問わず含む行を抽出します。
SEARCH関数はワイルドカード(*や?)にも対応しているため、あいまい検索にも応用できます。
FILTER関数が使えない場合の代替方法(INDEX・MATCH)
古いバージョンのExcelを使用していてFILTER関数が利用できない場合は、INDEX関数とMATCH関数を組み合わせる方法があります。
例:=IFERROR(INDEX(A:A, MATCH(TRUE, ISNUMBER(FIND(“東京”, A:A)), 0)), “”)
→ A列の中で「東京」を含む最初のセルの値を返します。(配列数式:Ctrl+Shift+Enterで確定)
ただし、この方法は最初に一致したセルしか取り出せない点に注意が必要です。
複数の該当行をすべて取り出したい場合は、条件付きフィルター機能や補助列を活用する方法も検討してみてください。
複数条件で特定の文字を含むセルを抽出する応用テクニック
続いては、複数の条件を組み合わせて特定の文字を含むセルを抽出する応用テクニックを確認していきます。
実務では「AとBの両方を含む」「AまたはBを含む」といった複数条件での抽出が求められることも多くあります。
AND条件(AかつBを含む)で抽出する方法
「東京」かつ「営業」の両方を含む行を抽出したい場合は、ISNUMBER・FINDをAND関数や乗算(*)で繋ぎます。
FILTER関数でのAND条件例:
=FILTER(A2:C10, ISNUMBER(FIND(“東京”, A2:A10)) * ISNUMBER(FIND(“営業”, B2:B10)), “該当なし”)
→ A列に「東京」を含み、かつB列に「営業」を含む行を抽出します。
複数の条件式を乗算(*)でつなぐと、すべての条件がTRUEのときだけ抽出されるAND条件になります。
OR条件(AまたはBを含む)で抽出する方法
「東京または大阪を含む」というOR条件には、加算(+)を使います。
FILTER関数でのOR条件例:
=FILTER(A2:C10, (ISNUMBER(FIND(“東京”, A2:A10))) + (ISNUMBER(FIND(“大阪”, A2:A10))), “該当なし”)
→ A列に「東京」または「大阪」を含む行を抽出します。
加算(+)でつなぐことで、どちらか一方でも条件を満たす行が抽出されます。
IF関数とCOUNTIF関数を組み合わせた複数条件の判定
FILTER関数が使えない環境では、COUNTIF関数をIF関数と組み合わせる方法も有効です。
例:=IF(COUNTIF(A2, “*東京*”) + COUNTIF(A2, “*大阪*”) >= 1, “該当”, “”)
→ A2セルに「東京」または「大阪」が含まれていれば「該当」と表示します。
COUNTIF関数はワイルドカード(*)が使えるため、「特定の文字を含むかどうか」の判定に非常に便利です。
複数条件の抽出でよく使うパターンをまとめると、以下のようになります。
| 条件の種類 | 使用する演算子・関数 | 具体例 |
|---|---|---|
| AND条件(両方含む) | *(乗算) | ISNUMBER(FIND(“A”,…)) * ISNUMBER(FIND(“B”,…)) |
| OR条件(どちらか含む) | +(加算) | ISNUMBER(FIND(“A”,…)) + ISNUMBER(FIND(“B”,…)) |
| NOT条件(含まない) | NOT関数 | NOT(ISNUMBER(FIND(“A”,…))) |
用途に合わせてこれらを使い分けることで、複雑な条件にも柔軟に対応できます。
まとめ
本記事では、Excelで特定の文字を抽出する方法について、基本から応用まで幅広く解説しました。
最初に整理した通り、FIND関数・ISNUMBER関数・IF関数の組み合わせは、どのバージョンのExcelでも使える汎用的な方法として覚えておくと非常に便利です。
Microsoft 365やExcel 2021以降の環境であれば、FILTER関数を使うことで条件に合う行を一括で取り出すことができ、作業効率が大幅にアップします。
また、複数条件での抽出には乗算(*)や加算(+)を活用したFILTER関数の書き方が有効で、AND条件・OR条件も直感的に記述できます。
COUNTIF関数とワイルドカードの組み合わせも、シンプルで実用的なテクニックのひとつです。
今回ご紹介した方法を活用すれば、大量のデータの中から必要な情報をすばやく取り出せるようになるでしょう。
ぜひ日々の業務や作業の中で試してみてください。