
Excelで「特定の文字が含まれているか」を判定する関数、ちゃんと使いこなせていますか?
- IF関数で文字を判定できない
- 抽出結果にミスが出る
- 複数条件でうまく動かない
- 範囲全体の検索ができない
よくある「含む」のトラブルを解決します。
- IF関数で〇や×を表示
- 条件ごとに値を変える方法
- 文字列の抽出方法がわかる
- 複数条件・範囲検索に対応
本記事では、ExcelのIF関数を使って「特定の文字が入っていたら〇を表示する」「条件に応じて値を変える」などの実務に役立つ技を徹底解説します。
エクセルで「関数で文字列を含むか抽出する方法」や「excel ifで複数条件を扱う方法」、「文字列を含む複数条件の対処法」「範囲内に文字があれば〇と表示する方法」まで幅広くカバー。
また、「特定の文字列を含む場合に指定の値を返す」「excelで特定の文字が含まれていたらどうするか」といった実用的なテクニックも盛り込んでいます。
ExcelのIF関数で文字を含むか判定する方法
ここでわかること
- 特定の文字が入っていたら〇と表示
- 関数で文字列を含むか抽出する方法
- IF関数で複数条件を判定する方法
- 含む文字に応じて値を返す方法
特定の文字が入っていたら〇と表示
セル内の文字を検索したいときは?
Excelでセル内に特定の文字が入っているかを判定するには、IF関数とSEARCH関数を組み合わせる方法が便利です。
検索結果に応じて「〇」「×」などの表示を切り替えることができます。
Q:どんな数式を使うの?
以下のような数式が代表的です。
- =IF(ISNUMBER(SEARCH("営業",A2)),"〇","×")
この式は、セルA2に「営業」という文字列が含まれていたら「〇」を、含まれていなければ「×」を表示するものです。
SEARCH関数は、文字列が含まれていればその位置を返し、含まれていなければエラーになります。
そのため、ISNUMBER関数で位置が数字かどうかを判定し、IF関数に渡します。
Q:部分一致もできるの?
はい、SEARCH関数は部分一致で検索してくれます。
たとえば「営業企画部」などの文字列でも、「営業」が含まれていれば「〇」と表示されます。
完全一致が必要な場合は、別の方法(=演算子やEXACT関数)を使います。
Q:注意すべき点は?
以下のようなケースに気をつけましょう。
- SEARCH関数は大文字小文字を区別しない
- 一致しないとエラーになるため、IFとの組み合わせが必須
- 全角・半角や空白の違いに注意
このような点に注意すれば、文字列判定のIF関数をより正確に使うことができます。
Q:実際の画面はどんな感じ?
こちらの画像をご覧ください。
このように、部署名に「営業」が含まれているかどうかを判定し、「〇」「×」で表示させています。
関数で文字列を含むか抽出する方法
IF関数とSEARCH関数を組み合わせることで、セル内に特定の文字列が含まれているデータを抽出することができます。
特定の文字列を含むデータを取り出すには?
たとえば、「営業」という文字が含まれる部署名だけを一覧表示したいときは、次のような関数を使います。
=IF(ISNUMBER(SEARCH("営業", A2)), A2, "")
この数式は、「A2セルに『営業』という文字列が含まれていればA2を表示、含まれていなければ空白にする」という処理です。
データの中から一部の条件を満たす行を抜き出すのに便利です。
注意点:完全一致ではなく部分一致
SEARCH関数は部分一致で検索を行うため、「営業部」や「法人営業課」などのように一部に「営業」が含まれていればヒットします。
完全一致が必要な場合は EXACT関数 や IF(A2="営業部", ...) のような式に置き換える必要があります。
FILTER関数と組み合わせて一覧表示
IF関数では抽出結果に空白セルが混ざることがあります。
一覧としてスッキリ抽出したいときは、FILTER関数と併用しましょう。
=FILTER(A2:A11, ISNUMBER(SEARCH("営業", A2:A11)))
この関数は「A2:A11の中で『営業』という文字列を含むセルだけを抽出して一覧表示する」という意味になります。
実際のExcel画面はこちら
下の画像は、上記の関数を使って部署名に「営業」を含む行を抽出した例です。
数式とその機能をわかりやすく並べた構成になっているので、初心者でも理解しやすいです。
IF関数で複数条件を判定する方法
IF関数に複数条件を入れたいときは、AND関数やOR関数を組み合わせるのが基本です。
たとえば、「AまたはBが含まれていたら〇を表示」といった処理が可能になります。
OR関数で「いずれかを含む」判定
OR関数は「どちらか一方が成り立てばOK」という条件分岐に使います。
たとえば、「営業」または「企画」という文字列を含むかを調べたい場合は、以下のような式を使います。
=IF(OR(ISNUMBER(SEARCH("営業",A2)),ISNUMBER(SEARCH("企画",A2))),"〇","")
SEARCH関数は、セル内に特定の文字列が含まれている位置を調べます。ISNUMBER関数を組み合わせることで、見つかったかどうかをTRUE/FALSEで判定できます。
AND関数で「すべてを含む」条件も可能
複数の文字列すべてを含む必要がある場合は、ORではなくAND関数を使います。
たとえば、「営業」と「常勤」の両方を含む場合の数式は以下のようになります。
=IF(AND(ISNUMBER(SEARCH("営業",A2)),ISNUMBER(SEARCH("常勤",B2))),"〇","")
このようにANDとORの違いを理解して使い分けることが重要です。
複雑な条件ではネストに注意
IF関数の中にANDやORを入れ子(ネスト)にすることで、かなり柔軟な条件判定が可能になります。
ただし、式が長くなりすぎると読みづらくなります。
そんなときは、なるべく途中で改行して見やすくしたり、LET関数を使って名前をつけると読みやすくなります。
実際の使用例はこちら
以下の画像は、部署名と勤務形態をもとに複数の条件を検索して「〇」を表示する例です。
含む文字に応じて値を返す方法
ExcelのIF関数は、条件に応じて異なる値を返すことができます。
中でも「含まれている文字に応じて返す値を変える」という使い方は、実務でも非常に便利です。
具体的な分岐例:「Aなら〇、Bなら△」
たとえば、部署名に「営業」が含まれていれば「〇」、「企画」が含まれていれば「△」、それ以外は「×」というような処理ができます。
このような場合は、以下のようにIF関数をネスト(入れ子)して使います。
=IF(ISNUMBER(SEARCH("営業",A3)),"〇",IF(ISNUMBER(SEARCH("企画",A3)),"△","×"))
この式のポイントは以下の通りです。
- SEARCH関数で特定の文字列が含まれているかどうかを確認
- SEARCH関数の結果が数値(=見つかった位置)であればISNUMBERがTRUEを返す
- TRUEであればIF関数がそれに応じた記号を返す
結果のイメージ
以下の画像は、実際にこの数式を使ってデータを判定している様子です。
「営業部」には「営業」が含まれるので「〇」、「企画部」には「企画」が含まれるので「△」、それ以外はすべて「×」になります。
応用:さらに条件を増やすときの注意
IF関数を何重にも入れ子にする場合、構文エラーが起きやすくなります。
カッコの数や位置に注意しながら書いていきましょう。
また、条件の数が多い場合はSWITCH関数やIFS関数を使うのもおすすめです(※これらはExcelのバージョンによっては使えません)。
この後の記事では「含む条件がうまく機能しない原因や注意点」について詳しく解説していきます。
ExcelのIF関数で含む条件を使うときの注意点
ここでわかること
- 含む条件が機能しない原因
- 範囲内に文字があるかの確認方法
- IF関数での部分一致に注意
- 検索関数との併用時の注意点
含む条件が機能しない原因
IF関数で「含む」条件がうまく機能しないことってありませんか?
ここでは、その原因と対処法について具体例を使って解説します。
全角・半角の違いによる誤認識
「A」という文字を含むか判定するつもりが、実は全角の「A」が入力されていた…なんてことも。
Excelでは全角と半角は別の文字として扱われるため、検索や条件付きの判定では正しく動作しないことがあります。
目視では気付きにくいので、ASC関数やJIS関数で文字コードの違いを確認しましょう。
余計なスペースの混入
セルの中にうっかり入った空白(スペース)が原因で、条件が一致しないことがあります。
特に末尾のスペースは見逃しやすいため注意が必要です。
このような場合はTRIM関数で前後の余計なスペースを削除してから判定するのがおすすめです。
似たような文字の見間違い
数字の「0(ゼロ)」とアルファベットの「O(オー)」、数字の「1(いち)」と「l(エル)」など、見た目が似ている文字の入力ミスもよくある原因です。
こうした入力ミスを防ぐには、候補リストのドロップダウンを使うか、データ検証ルールを設定して入力を制限するのが有効です。
正確な関数の動作を確認しよう
上記のような要因があると、IF関数の条件が正しく評価されず、「含むはずなのに含まれていない」という状態になります。
うまく動作しないときは、SEARCH関数単体で文字の位置を確認してみると、原因が見つかることがあります。
以下は、実際にこのようなトラブルが起こるケースをまとめたExcel例です。
画像をクリックして拡大表示できます。
範囲内に文字があるかの確認方法
複数のセル範囲に対して特定の文字列が含まれているかを調べたいときは、COUNTIF関数が便利です。
たとえば「営業」という文字が複数セルに1つでも入っているかをチェックしたい場合などに使えます。
COUNTIF関数を使った方法
COUNTIF関数は、指定した範囲に特定の条件を満たすセルがいくつあるかをカウントする関数です。
以下のように使うことで、「営業」という文字が含まれるセルが1つでもあれば「あり」と表示させることが可能です。
=IF(COUNTIF(A2:A11,"*営業*")>0,"あり","なし")
*(アスタリスク)はワイルドカードで、文字列の前後にどんな文字があってもOKという意味です。
この式では「A2~A11の中に"営業"を含むものが1つ以上あるか」を調べて、「あり」または「なし」で出力しています。
注意点:部分一致の扱いに注意
完全一致ではなく部分一致なので、「営業部」「営業チーム」などでも一致します。
逆に「営業所長」など、思わぬ文字列が一致してしまう可能性もあるため、範囲と条件は慎重に設定しましょう。
TEXTJOINとの組み合わせ
複数セルの中身を1つにまとめて調べるにはTEXTJOIN関数を組み合わせる方法もあります。
たとえば以下のように使うと、A列の内容をまとめて「営業」が含まれるかチェックできます。
=IF(ISNUMBER(SEARCH("営業",TEXTJOIN(",",TRUE,A2:A11))),"あり","なし")
この方法は空白セルも含めて確認できる点が便利です。
スクリーンショット例
実際の画面イメージはこちらです。
IF関数での部分一致に注意
IF関数とSEARCH関数を組み合わせると、特定の文字列が含まれているかを部分一致で判定できます。
しかし、部分一致には注意が必要なポイントがいくつかあります。
意図しない一致に要注意
たとえば、「部」という文字を検索すると「営業部」「開発部」はもちろん、「部長」「部屋」なども一致対象になります。
期待していた単語以外にもマッチしてしまうことがあるため、条件の設定には注意が必要です。
SEARCH関数は大文字・小文字を区別しない
ExcelのSEARCH関数は「営業」と「営業部」のように、小文字・大文字の区別はしません。
ただし、FIND関数は大文字と小文字を区別するので、明確な区別が必要なときにはFIND関数の使用を検討しましょう。
必要に応じて前方一致や完全一致を使う
「◯◯で始まる」「完全に一致した文字だけ」という条件が必要なときは、LEFT関数や=演算子との組み合わせが有効です。
部分一致は便利な反面、柔軟すぎるがゆえにトラブルの原因にもなります。
画面イメージで確認しよう
以下のスクリーンショットは、実際のExcelでSEARCH関数を使った部分一致チェックの例を示しています。
赤字の列には、入力された数式の内容と、その機能説明が記載されています。
検索関数との併用時の注意点
IF関数はVLOOKUPやXLOOKUPといった検索関数と組み合わせることで、さらに柔軟なデータ処理が可能になります。
ですが、実務で使う際にはエラー回避や条件の組み立てに注意が必要です。
検索結果が見つからないときの処理
VLOOKUPやXLOOKUPでは、指定した条件に合う値が見つからないと#N/Aエラーになることがあります。
このままIF関数で処理しようとすると、意図しない結果を返すことがあります。
そのため、IFERROR関数やISNA関数と組み合わせることで、エラー時の表示を制御できます。
IFとVLOOKUPを組み合わせる例
以下のように記述すれば、「検索対象があるかないか」によって出力を変えることができます。
=IF(ISNA(VLOOKUP(A2,F2:G5,2,FALSE)),"未登録",VLOOKUP(A2,F2:G5,2,FALSE))
この式では、VLOOKUPで該当するデータがない場合は「未登録」と表示し、ある場合は対応する担当者名を表示します。
実際の使用画面
以下は、実際にIFとVLOOKUPを組み合わせた画面例です。
「部署」列の値をもとに、担当者が表示されたり「未登録」と表示される様子が確認できます。
VLOOKUP以外の関数との併用にも注意
VLOOKUP以外にも、XLOOKUPやINDEX+MATCHのような関数をIFと併用することも可能です。
この場合も検索結果が見つからない時のエラー処理を忘れないようにしましょう。
IF関数と検索関数の組み合わせは便利ですが、条件ミスやエラー処理不足で誤動作することもあるため注意が必要です。
記事のまとめ
記事のポイントをまとめます。
IF関数と含む条件の基本
- SEARCH関数で文字を検索
- ISNUMBER関数で検索結果を判定
- IF関数で〇×を出力できる
- 部分一致で検索される
抽出・出力の応用テクニック
- IFで特定文字を抽出可能
- FILTER関数で一覧表示も可
- 含む文字に応じて値を返す
- 複数条件の出力も設定可能
複数条件・範囲対応
- OR関数でいずれかを判定
- AND関数で全てを判定可能
- COUNTIFで範囲を確認可能
- TEXTJOINで範囲を結合判定
エラー対策と注意点
- 全角半角の違いに注意
- 余計な空白はTRIMで除去
- 意図しない一致に要注意