Excelを使っていると、「この文字列の中に特定の単語が含まれているか調べたい」と思ったことはありませんか?
そんな時に活躍するのが、ExcelのSEARCH関数です。
特に文字列の中にキーワードが含まれているかを確認したり、位置を特定したりするのに非常に便利です。
本記事では、SEARCH関数の基本的な使い方から応用テクニックまで、実務で使える具体例を交えて徹底的にご紹介します。
結論:SEARCH関数は柔軟な文字列検索に欠かせない
SEARCH関数は、Excelで特定の文字列や部分文字列の位置を検索する関数であり、ケースに依存しない検索(大文字・小文字を区別しない)が可能です。
IF関数やISNUMBER関数と組み合わせることで、検索結果を基にした分岐処理や条件付きの操作も簡単に行えます。
SEARCH関数の基本構文
まずはSEARCH関数の基本構文から確認しておきましょう。
=SEARCH(検索文字列, 対象文字列, [開始位置])
- 検索文字列:探したい文字や単語
- 対象文字列:検索対象となるセルや文字列
- 開始位置(省略可):検索を開始する位置(省略した場合は1から)
例えば、以下のような式は、「Excel」という文字列の中で「c」が何番目にあるかを返します。
=SEARCH(“c”, “Excel”) → 3
SEARCH関数とFIND関数の違い
混同しやすい関数に「FIND関数」がありますが、SEARCH関数との大きな違いは以下の通りです。
| 関数名 | 大文字小文字の区別 | ワイルドカード使用可 | エラー時の動作 |
|---|---|---|---|
| SEARCH | 区別しない | 使用可 | #VALUE!を返す |
| FIND | 区別する | 使用不可 | #VALUE!を返す |
大文字・小文字を無視して検索したい場合は、SEARCH関数が適しています。
SEARCH関数の具体的な使用例
例1:特定の文字列が含まれているか確認
=ISNUMBER(SEARCH(“東京”, A1))
この式は、A1セルに「東京」が含まれていればTRUEを返し、含まれていなければFALSEを返します。
例2:ワイルドカードと組み合わせて使う
SEARCH関数はワイルドカードに対応しています。
=SEARCH(“*部”, A1)
「営業部」「総務部」など、「部」で終わる文字列の位置を取得できます。
例3:IF関数との組み合わせで条件分岐
=IF(ISNUMBER(SEARCH(“エラー”, B2)), “エラーあり”, “正常”)
このようにして、エラーという文字列が含まれるかどうかによって処理を分けることができます。
ワイルドカードの使い方と注意点
SEARCH関数はワイルドカード(* と ?)が使用可能です。
*:任意の文字列を表す?:任意の1文字を表す
例:
=SEARCH(“a?c”, “abc”) → 1
ワイルドカードが使える関数、使えない関数については以下でまとめています。
エラー処理の工夫:IFERRORとの併用
SEARCH関数は見つからないと#VALUE!エラーを返します。
エラーを避けたい場合は、IFERROR関数を使うのがおすすめです。
=IFERROR(SEARCH(“データ”, A1), “見つかりません”)
IFERROR関数については以下でまとめています。
SEARCH関数が活きる場面とは?
- 顧客名に特定のキーワードが含まれているかチェックしたい
- 商品名の一部で分類を分けたい
- 複数の条件に応じた表示分けをしたい
このようなケースでは、SEARCH関数の柔軟な検索機能が非常に役立ちます。
他関数との連携でさらに便利に
SEARCH関数は、以下のような関数と組み合わせて使うことで、より複雑な処理が可能になります。
- ISNUMBER:検索成功を判定
- IF:条件付き出力に活用
- LEFT/RIGHT/MID:文字列の抽出と組み合わせ
まとめ:SEARCH関数を使いこなして文字列操作をスマートに
ExcelのSEARCH関数は、日常業務において文字列検索を効率化する強力な関数です。
特に大文字・小文字の区別をせず検索できる点や、ワイルドカード対応という柔軟性は魅力です。
ISNUMBERやIF関数との組み合わせにより、より実用的な使い方が可能になります。
日々のExcel作業をもっと快適にするために、ぜひSEARCH関数を使いこなしてみてください。





