Excel関数で特定の文字列がセルに含まれているかを判定する方法
Excelで指定した文字列が特定のセル内に含まれているかを判定し、その結果を表示する方法について詳しく解説します。特に、ワイルドカードを活用したCOUNTIF関数を用いることで、柔軟な条件判定が可能になります。
1. 指定した文字列がセルに含まれているかを判定する基本式
セルA1に指定した文字列が含まれている場合、セルB1に判定結果を表示するには、以下の数式を使用します。
=IF(COUNTIF(A1, "*検索文字列*"), "○", "")
例
セルA1に「YOU」という文字列が含まれているかを判定し、含まれている場合は「○」、含まれていない場合は空白を表示する場合:
=IF(COUNTIF(A1, "*YOU*"), "○", "")
仕組み
COUNTIF(A1, "*YOU*")
A1
の中に”YOU”という文字列がある場合は1
を返し、ない場合は0
を返します。"*YOU*"
の*
(アスタリスク)はワイルドカードであり、「任意の文字列」を意味します。そのため、「YOU」がA1のどこにあってもカウントされます。
IF(…)
COUNTIF
の結果が1以上なら「○」を表示し、0なら空白を表示します。
2. 応用編:大文字小文字を区別せずに判定する方法
COUNTIF関数は大文字小文字を区別するため、「you」と「YOU」は別の文字列として扱われます。大文字小文字を区別せずに検索するには、SEARCH
関数を使います。
=IF(ISNUMBER(SEARCH("you", A1)), "○", "")
仕組み
SEARCH("you", A1)
- A1の中に「you」という文字列がある場合、その開始位置(数値)を返します。
- 含まれていない場合はエラーになります。
ISNUMBER(SEARCH(…))
SEARCH
の結果が数値(文字が含まれている)ならTRUE
、エラー(文字が含まれていない)ならFALSE
を返します。
IF(… , "○", "")
TRUE
なら「○」を表示し、FALSE
なら空白を表示します。
この方法なら、大文字小文字の違いを気にせずに検索可能です。
3. 文字列が複数含まれているかを判定する方法
複数の単語を対象に、「いずれかの単語が含まれているか」を判定する場合は、COUNTIFS関数またはOR関数を利用します。
例:A1に「YOU」または「HELLO」が含まれている場合に「○」を表示
=IF(OR(COUNTIF(A1, "*YOU*"), COUNTIF(A1, "*HELLO*")), "○", "")
または、SEARCH関数を使用して大文字小文字を区別しない方法:
=IF(OR(ISNUMBER(SEARCH("you", A1)), ISNUMBER(SEARCH("hello", A1))), "○", "")
4. 文字列が含まれる場合に特定の値を返す応用例
検索対象の文字列に応じて異なる値を返すことも可能です。
例:「GOOD」が含まれていると「良い」、「BAD」が含まれていると「悪い」を表示
=IF(ISNUMBER(SEARCH("GOOD", A1)), "良い", IF(ISNUMBER(SEARCH("BAD", A1)), "悪い", ""))
このように、IF
をネストして条件を増やせば、さまざまな判定が可能になります。
5. 注意点と補足
❌ COUNTIFのワイルドカードは半角・全角を区別する
COUNTIF関数を使用すると、全角・半角の違いを厳密に区別してしまいます。そのため、「ABC」と「ABC」は異なるものと見なされます。
❌ COUNTIFは大文字小文字を区別する
- 「apple」と「APPLE」は別のものと判定されます。
- 大文字小文字を区別しない場合は、
SEARCH
関数を使用しましょう。
✅ エラー回避
SEARCH
を使うと、文字が見つからない場合にエラーになります。これを防ぐためにIFERROR
を使うと安全です。
=IFERROR(IF(ISNUMBER(SEARCH("you", A1)), "○", ""), "")
6. まとめ
判定条件 | 関数の書き方 | 補足 |
---|---|---|
文字列が含まれているか | =IF(COUNTIF(A1, "*YOU*"), "○", "") | 大文字小文字を区別する |
大文字小文字を無視して判定 | =IF(ISNUMBER(SEARCH("you", A1)), "○", "") | 検索語句は小文字で統一 |
複数の文字列を判定 | =IF(OR(COUNTIF(A1, "*YOU*"), COUNTIF(A1, "*HELLO*")), "○", "") | COUNTIFを複数回使用 |
指定した単語ごとに異なる値を返す | =IF(ISNUMBER(SEARCH("GOOD", A1)), "良い", IF(ISNUMBER(SEARCH("BAD", A1)), "悪い", "")) | IFをネストして条件を追加 |
エラーを回避する | =IFERROR(IF(ISNUMBER(SEARCH("you", A1)), "○", ""), "") | 文字が見つからない場合も対応 |
これらの方法を活用することで、Excelで柔軟な文字列検索を行い、さまざまな判定が可能になります。
コメント