Excelで文字列の一部を検索したいとき、便利なのが「SEARCH関数」です。たとえば「特定の文字がどこにあるか調べたい」「文字列に含まれているキーワードの位置を知りたい」など、業務で役立つ場面は多くあります。しかし、似た関数に「FIND関数」もあるため、使い分けに迷う人も少なくありません。この記事では、SEARCH関数の基本的な使い方から実務で役立つ応用例まで、丁寧に解説します。初心者でも理解できるよう、わかりやすい例を交えて紹介していますので、ぜひ最後までご覧ください。
SEARCH関数は、指定した文字列の中から、別の文字列を検索し、その開始位置を返す関数です。たとえば「メールアドレスの中で@の位置を知りたい」といった場面で役立ちます。
基本構文:
=SEARCH(検索文字列, 対象文字列, [開始位置])
引数の意味:
検索文字列
: 探したい文字や語句(例:”@”)対象文字列
: 探したい対象(例:”sample@example.com“)開始位置
(省略可能): 検索を始める位置(1から始まる)=SEARCH("a", "banana")
この場合、「banana」の中で最初に出てくる「a」は2文字目です。結果は「2」となります。
=SEARCH("B", "banana")
この場合も「b」が2文字目に出てくるため、結果は「2」になります。SEARCH関数は大文字・小文字を区別しない点が特徴です。対して、FIND関数は区別します。
比較項目 | SEARCH関数 | FIND関数 |
---|---|---|
大文字小文字の区別 | しない | する |
ワイルドカード使用可 | 可能(? や *) | 不可 |
エラー時の動作 | エラー(#VALUE!) | 同じくエラー |
違いを理解して、目的に応じた関数を選ぶことが大切です。
=SEARCH("cat", "My cat is cute")
→ 「cat」は4文字目から始まるため、結果は「4」となります。
=SEARCH("a", "banana", 3)
→ 3文字目以降にある「a」は4文字目。結果は「4」になります。
*
:任意の文字列?
:任意の1文字=SEARCH("a*d", "abcd")
→ aからdまでに一致する文字列があるので、結果は「1」。
SEARCH関数は、条件式の一部としても活用されます。
=IF(ISNUMBER(SEARCH("エラー", A1)), "不備あり", "正常")
上記の例では、A1セルに「エラー」という文字が含まれていれば「不備あり」と表示され、そうでなければ「正常」となります。
=MID(A1, SEARCH(":", A1) + 1, LEN(A1))
この式は、A1セルの中で「:(コロン)」の後ろの文字列を抽出します。
たとえば A1が「タイトル:商品名」の場合、「商品名」のみを取得できます。
SEARCH関数は、対象の文字列が見つからないと #VALUE!
エラーになります。それを避けるには IFERROR
関数と組み合わせます。
=IFERROR(SEARCH("test", A1), "")
この式は、「test」が見つからない場合は空白を返すため、見た目にもきれいです。
=RIGHT(A1, LEN(A1) - SEARCH("@", A1))
「user@example.com」から「example.com」を取り出すことができます。
=RIGHT(A1, LEN(A1) - SEARCH(".", A1))
ファイル名「document.pdf」から「pdf」だけを取り出す、といった場面で便利です。
SEARCH関数は、Excelの中でもシンプルながら非常に便利な文字列関数です。文字の位置を特定するだけでなく、他の関数と組み合わせることで、メール処理、データ整形、条件分岐など様々な業務に応用ができます。FIND関数との違いを理解し、場面に応じて使い分けることができれば、Excel作業の効率は格段に上がるでしょう。
今後はぜひ、SEARCH関数を日常業務で積極的に活用してみてください。