【Excel】エクセルで特定の文字が含まれていたら判定する方法(色・抽出)
Excelで商品名、顧客名、備考欄などを管理していると、セル内に特定の文字が含まれるデータだけを判定したい場面があります。
たとえば「東京」を含む住所を探す、「至急」を含む案件に色を付ける、「完了」を含む行だけを抽出するといった作業です。
COUNTIF関数、SEARCH関数、IF関数、条件付き書式、フィルターを組み合わせると、部分一致の判定から見やすい色分け、対象データの抽出まで行えます。
この記事で扱う主な方法は、COUNTIF関数による含む判定、SEARCH関数による文字位置の確認、条件付き書式による色付け、フィルターによる抽出です。
ここでは、1行目に見出しがある表を使いながら、特定の文字が含まれていたら判定する数式と操作を詳しく確認していきましょう。
エクセルで特定の文字が含まれていたら判定する方法【COUNTIF関数】
それではまず、COUNTIF関数を使ってセルに指定文字が含まれるかを判定する方法について解説していきます。
| 商品名 | 備考 | 判定 |
|---|---|---|
| 東京限定クッキー | 在庫あり | 東京を含む |
| 大阪限定クッキー | 要確認 | 東京を含まない |
| 東京ミルクパン | 至急発送 | 東京を含む |
ワイルドカードを使った部分一致判定
COUNTIF関数は、本来は条件に合うセルの個数を数える関数ですが、1つのセルを対象にすれば文字列が含まれるかどうかの確認にも利用できます。
たとえば商品名がA列にあり、A2セルに「東京」という文字が含まれるかをC2セルで判定する場合、次の数式を入力します。
=IF(COUNTIF(A2,”*東京*”)>0,”東京を含む”,”東京を含まない”)
アスタリスクは任意の文字列を表すワイルドカードです。
「*東京*」と指定すると、セルの先頭、中間、末尾のどこに東京があっても一致します。

COUNTIFの結果が1以上なら東京を含む、0なら含まないと判断される仕組みです。
数式をC2セルに入力した後、セル右下のフィルハンドルを下方向へドラッグすれば、各行の判定結果をまとめて表示できます。
【操作のポイント】検索する文字を固定したい場合は「東京」を直接入力し、検索語を変更する可能性がある場合は別セルを参照する形にすると管理しやすくなります。
検索語をセル参照する数式
検索したい文字を毎回数式内に入力すると、条件を変えるたびに式を修正する必要があります。
そこで、たとえばE1セルに検索語として「東京」を入力し、A2セルの商品名を判定する方法が便利です。
=IF(COUNTIF(A2,”*”&$E$1&”*”)>0,”該当”,”対象外”)
数式内の「&」は文字列をつなぐ記号です。
「*”&$E$1&”*」という指定により、E1セルの文字列の前後へワイルドカードを付けた条件になります。
$E$1のように絶対参照にすると、数式を下へコピーしても検索語のセルがずれません。

検索語を「大阪」や「限定」へ書き換えるだけで判定結果が自動更新されるため、複数の条件を試す作業にも向いています。
空白の検索語を入れた場合はすべてのセルが該当扱いになりやすいため、検索語の入力漏れには注意が必要です。
【操作のポイント】検索語を入力するセルには、表と区別できる背景色を付けておくと、入力場所を誤りにくくなります。
複数の文字を含むデータの判定
「東京」と「限定」の両方を含む商品名だけを探したい場合は、COUNTIF関数を2つ組み合わせます。
=IF(AND(COUNTIF(A2,”*東京*”)>0,COUNTIF(A2,”*限定*”)>0),”両方を含む”,”対象外”)
AND関数は、指定した条件がすべて正しいときにTRUEを返す関数です。
この式では、東京を含むという条件と限定を含むという条件が両方成立した行だけに「両方を含む」と表示されます。
いずれか一方を含めばよい場合は、AND関数ではなくOR関数を使います。
OR関数に変更すれば、東京または大阪を含むデータ、至急または重要を含む連絡事項といった判定も可能です。
【操作のポイント】複数条件では、すべて必要ならAND関数、どれか1つでよいならOR関数という使い分けを意識しましょう。
特定の文字が含まれていたら色を付ける方法【条件付き書式】
続いては、特定の文字を含むセルや行に自動で色を付ける条件付き書式を確認していきます。
| 案件名 | 担当者 | 備考 |
|---|---|---|
| 見積書作成 | 田中 | 至急対応 |
| 定例会議資料 | 佐藤 | 通常 |
| 納品日確認 | 鈴木 | 至急連絡 |
文字列を含むセルだけの色分け
備考欄に「至急」が含まれるセルだけを赤くしたい場合は、条件付き書式の文字列ルールを利用します。
まず対象範囲としてC2からC100など、見出しを除いた備考欄のセル範囲を選択します。
次にホームタブの条件付き書式から、セルの強調表示ルール、文字列を含むの順にクリックします。

表示された入力欄へ「至急」と入力し、書式の候補から薄い赤の塗りつぶしなどを選択してOKを押します。
この設定では、至急という文字が完全に一致しなくても、至急対応や至急連絡のように含まれていれば色が付きます。
色は業務上の優先度を視覚的に伝える役割を持つため、警告には赤、確認には黄、完了には緑のように意味を決めると読みやすくなります。
【操作のポイント】条件付き書式の対象範囲には1行目の見出しを含めず、実際のデータが始まる2行目から指定しましょう。
数式を使った行全体の色付け
備考欄の文字を基準にして、案件名や担当者を含む行全体へ色を付けたい場合は、数式を使用する条件付き書式が適しています。
たとえばA2からC100までを選択した状態で、条件付き書式、新しいルール、数式を使用して書式設定するセルを決定を選びます。
=COUNTIF($C2,”*至急*”)>0
この数式では、列Cだけを固定し、行番号は相対参照のままにしています。
$C2という参照にすると、判定の基準は常にC列の備考欄になり、各行ごとに自動判定されます。

書式ボタンから塗りつぶし色を選択し、OKを押すと、C列に至急を含む行だけがまとめて強調表示されます。
数式を使う方法は、別列の状態を見て対象行を目立たせたいときに特に便利です。
【操作のポイント】行全体を色付けする場合は、適用先の範囲を表全体にし、判定に使う列だけにドル記号を付けます。
複数キーワードに応じた色の使い分け
至急、確認、完了など、複数の文字列によって異なる色を付けたい場合は、条件付き書式のルールを複数作成します。
たとえば「至急」を赤、「確認」を黄、「完了」を緑に設定すると、作業の状態を表だけで把握しやすくなります。
複数ルールが同じセルに当てはまると、ルールの優先順位によって表示が変わることがあります。
ホームタブの条件付き書式からルールの管理を開くと、適用順序や対象範囲を確認できます。
似た意味の文字が混在する場合は、より優先度の高いルールを上に移動し、必要なら「条件を満たす場合は停止」を設定します。
【操作のポイント】色の種類を増やしすぎると表が読みにくくなるため、業務で必要な状態に絞ることが大切です。
特定の文字が含まれるデータを抽出する方法【フィルター】
続いては、特定の文字が含まれる行だけを表示するフィルター機能を確認していきます。
| 注文番号 | 配送先 | 商品 |
|---|---|---|
| 1001 | 東京都新宿区 | 文具セット |
| 1002 | 大阪府大阪市 | ノート |
| 1003 | 東京都渋谷区 | ペンセット |
オートフィルターによる部分一致抽出
抽出したい一覧表を用意したら、表内の任意のセルをクリックします。
データタブのフィルターをクリックすると、1行目の各見出しに下向き矢印が表示されます。
配送先が入ったB列の矢印をクリックし、テキストフィルター、指定の値を含むを選択します。
| A | B | C | |
|---|---|---|---|
| 1 | 注文番号 | 配送先 ▼ | 商品 |
| 2 | 1001 | 東京都新宿区 | 文具セット |
条件欄に「東京」と入力してOKを押すと、東京都新宿区や東京都渋谷区のように東京を含む行だけが表示されます。
フィルターは元データを削除せず、条件に一致しない行を一時的に非表示にする機能です。
【操作のポイント】抽出後に件数を確認したいときは、画面下のステータスバーやSUBTOTAL関数を利用すると便利です。
複数条件を指定した絞り込み
配送先に東京を含み、さらに商品名にセットを含む行だけを探したい場合は、列ごとにフィルター条件を設定します。
まず配送先列で東京を含むという条件を設定し、その後に商品列でもセットを含むという条件を設定します。
複数列のフィルターはAND条件として働くため、両方の条件を満たすデータだけが残ります。
同じ列の中で複数の候補を選ぶ場合はOR条件になり、別の列で条件を重ねる場合はAND条件になる点が重要です。
たとえば東京または大阪を含む配送先を表示したいときは、テキストフィルターのユーザー設定で「または」を選択します。
【操作のポイント】抽出条件が複雑になったら、どの列に何の条件を設定したかをメモしておくと解除漏れを防げます。
フィルター解除と抽出結果のコピー
フィルターで絞り込んだ結果を別シートへ貼り付けたい場合は、表示されているセルだけをコピーする操作が必要です。
通常のコピーでは非表示の行も含まれることがあるため、ホームタブの検索と選択から条件を選択してジャンプを使い、可視セルを選択します。
その状態でコピーし、新しいシートのA1セルなどへ貼り付ければ、画面に表示されていたデータだけを取り出せます。
フィルターを解除するには、データタブのクリアをクリックするか、各列のフィルターから条件をすべてクリアします。
誤って行を削除しないよう、抽出は表示の切り替え、削除はデータの変更という違いを意識しましょう。
【操作のポイント】抽出結果を保存する前に、フィルター状態のままなのか、別シートへコピー済みなのかを確認しましょう。
SEARCH関数で文字列の位置を判定する方法
続いては、SEARCH関数で指定した文字が何文字目にあるかを調べる方法を確認していきます。
| 文章 | 検索語 | 位置 |
|---|---|---|
| 東京支店へ至急連絡 | 至急 | 6 |
| 大阪支店へ連絡 | 至急 | エラー |
SEARCH関数の基本構文
SEARCH関数は、指定した文字列がセル内の何文字目から始まるかを数値で返します。
=SEARCH(“至急”,A2)
A2セルが「東京支店へ至急連絡」であれば、至急は6文字目から始まるため、結果は6になります。
SEARCH関数は文字を見つけられない場合にエラーを返すため、単独では判定表示に向かないことがあります。
しかし、文字の位置を取得したい場合や、後述するISNUMBER関数と組み合わせたい場合には有効です。
【操作のポイント】検索対象の文字列が半角と全角で異なると一致しないため、入力データの表記を統一しておきましょう。
ISNUMBER関数と組み合わせた含む判定
SEARCH関数の結果が数値なら文字が見つかり、エラーなら見つからないという性質を利用します。
=IF(ISNUMBER(SEARCH(“至急”,A2)),”至急を含む”,”含まない”)
ISNUMBER関数は、値が数値である場合にTRUEを返す関数です。
SEARCH関数が位置を返したときだけTRUEになるため、エラーをそのまま表示せずに判定できます。
COUNTIF関数よりも、開始位置を調べる必要がある場合や複雑な数式に組み込む場合にSEARCH関数が活躍します。
検索語をE1セルに入力する運用なら、「至急」の部分を$E$1へ置き換えることで、検索条件を変更しやすくなります。
【操作のポイント】エラー表示を避けたい判定式では、SEARCH関数をISNUMBER関数またはIFERROR関数で包むと見やすくなります。
FIND関数との違い
SEARCH関数と似た関数にFIND関数があります。
主な違いは、SEARCH関数は英字の大文字と小文字を区別しないのに対し、FIND関数は区別する点です。
日本語の文字列を検索する一般的な表では、SEARCH関数を使う場面が多いでしょう。
英字の品番やメールアドレスでABCとabcを別扱いにしたい場合には、FIND関数を選ぶ価値があります。
また、SEARCH関数はワイルドカードを使用できますが、FIND関数では使用できません。
【操作のポイント】通常の部分一致判定にはSEARCH関数、英字の大文字小文字を厳密に区別する検索にはFIND関数を使い分けます。
関数で抽出用の判定列を作る方法
続いては、関数で判定列を作成し、対象データを管理しやすくする方法を確認していきます。
| 顧客名 | 問い合わせ内容 | 抽出判定 |
|---|---|---|
| 山田商事 | 至急見積もり希望 | 抽出対象 |
| 佐々木工業 | 資料請求 | 対象外 |
判定列を追加するメリット
元の文章列へ直接フィルターを設定する代わりに、判定結果だけを表示する列を追加する方法があります。
判定列には「抽出対象」「対象外」などの短い結果が入るため、フィルター条件を選びやすい点がメリットです。
問い合わせ内容が長文の場合でも、判定列を見れば該当状況をすぐ確認できます。
判定列を作ると、フィルター、並べ替え、件数集計、条件付き書式の基準を同じ結果にそろえられます。
【操作のポイント】判定列は元データの右端に追加し、見出しを「検索結果」や「抽出判定」など分かりやすい名称にしましょう。
空白セルを除外する数式
検索対象のセルが空白のときに、不要な判定を表示したくないケースもあります。
=IF(B2=””,””,IF(COUNTIF(B2,”*至急*”)>0,”抽出対象”,”対象外”))
最初のIF関数でB2セルが空白かを確認し、空白なら空文字を返します。
空白ではない場合だけ、内側のIF関数で至急を含むかどうかを判定する流れです。
未入力行が多い表では、空白行に対象外が並ばないようにするだけで、一覧の視認性が大きく向上します。
【操作のポイント】数式内の「””」は空白のように見せるための指定であり、スペースを入力しているわけではありません。
FILTER関数を使った別一覧の作成
Microsoft 365などでFILTER関数が使える環境では、該当するデータだけを別の場所へ自動表示できます。
=FILTER(A2:C100,ISNUMBER(SEARCH(“至急”,B2:B100)),”該当データなし”)
この数式は、B列に至急を含む行だけをA列からC列の範囲から取り出します。
元データを更新すると抽出結果も自動更新されるため、毎回フィルター操作を行う手間を減らせます。
ただし、FILTER関数の結果が表示される範囲には他の値を入力できません。
【操作のポイント】FILTER関数を入力する場所の下や右には、抽出結果が広がるため十分な空白セルを確保しましょう。
まとめ エクセルで特定の文字が含まれていたら判定する方法(抽出・色)
エクセルで特定の文字が含まれていたら判定するには、目的に応じて関数と機能を使い分けることが重要です。
セル内に文字が含まれるかだけを確認するなら、COUNTIF関数で「*検索語*」という条件を使う方法が分かりやすいでしょう。
文字がある位置を調べたり、数式を柔軟に組み立てたりする場合は、SEARCH関数とISNUMBER関数の組み合わせが役立ちます。
視覚的に見つけやすくしたい場合は条件付き書式、該当データだけを表示したい場合はフィルター、別一覧を自動作成したい場合はFILTER関数が適しています。
検索語を別セルに置けば、数式を作り直さなくても条件を切り替えられます。
まずは小さなサンプル表で部分一致の数式を試し、自分の管理表へ応用していきましょう。