ExcelのSEARCH関数は、文字列内で指定した文字が何文字目にあるかを取得する関数です(大文字小文字は区別しません)。ここでは基本的な使い方から、他の関数と組み合わせて文字列を抽出する応用例まで解説します。
SEARCH関数とは
ExcelのSEARCH関数は、対象文字列内に検索文字が何文字目にあるかを数値で返します。検索文字は複数文字で指定でき、対象文字列内に出現した検索文字の最初の文字の位置を返します。FIND関数とは異なり、SEARCH関数ではワイルドカードを使用でき、大文字と小文字は区別されません。オプションで3つ目の引数に開始位置を設定可能で、省略すると1文字目から検索します。
この関数の対応バージョンはExcel 2003以降です
SEARCH関数の構文
- 検索文字:検索する文字列を指定します。必須項目です。
- 対象文字列:検索対象の文字列を指定します。必須項目です。
- 開始位置:省略可能な引数です。何文字目から検索を開始するかを指定します。
SEARCH関数の使用例
使用例1:基本的な使い方
「Excelの勉強」という対象文字列の中に「cel」という文字列は3文字に入っているので「3」を返却しています。開始文字列は省略されているため、デフォルトの1が設定され、1文字目から検索されます。
=SEARCH("cel","Excelの勉強")
結果 → 3
使用例2:検索文字列の有無を論理値で返す
ISNUMBER関数と組み合わせることで検索文字列が対象文字列に存在しているかどうかを判定できます。SEARCH関数は検索文字列が存在しない場合、#VALUE!エラーを返すので、数値が返ってくる場合は検索文字列が存在しているとなるため、成立します。
=ISNUMBER(SEARCH(B3,C3))
結果 → TRUE
使用例3:SEARCH関数の結果を使って文字列を抽出する
SEARCH関数が返す位置をLEFT関数やMID関数と組み合わせると、特定の文字より前後の文字列を抽出できます。例えばメールアドレスから「@」より前のユーザー名部分だけを取り出す場合は次のようになります。
=LEFT(A1,SEARCH("@",A1)-1)
A1が"sample@example.com"の場合、結果 → sample
「@」の位置から1文字分を引くことで、「@」自体を含めずにその手前までを抽出しています。
SEARCH関数の要点
- 対象文字列の中に検索文字列がある場合、検索文字の最初の文字の位置を返します。
- 第3引数の開始位置は省略可能で、デフォルト値は1となります。
- 大文字と小文字を区別するにはFIND関数を使用します。
おすすめの解説動画
FINDとSEARCH関数の違いについて解説している動画です。丁寧に解説しているので、おすすめです。
ショートカットキーの練習できます
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome
