【EXCEL | SEARCH関数】指定の文字列から検索したい文字列がどこにあるのか確認する

スポンサーリンク

指定の文字列が別の文字列のどこにあるか確認する

SEARCH関数

構文

=SEARCH(探したい文字列, 文字列 [,開始位置])

”探したい文字列”が、”文字列”の中の何番目に出現するかを返してくれます。


※注意点

  • FIND関数と違って、探したい文字列にはワイルドカード文字も使用出来ます。
  • FIND関数と違って、大文字と小文字は区別されません。
  • 「開始位置」は検索を開始する文字数を指定しますが、答えとしては一番先頭からの文字数が出ます。

サンプル

やってみましょう。

A列が”文字列”、B列がA列の中で探したい文字列です。C列にFIND関数を入力して結果を確認します。

まずは基本形から。C2セルに次の数式を入力

=SEARCH(B2, A2)

Enterで確定します。

「いう」の出現が、2文字目になりますので、結果が”2”になります。

※分かりやすいようにD列に、C列に入っている数式を表示しています。

3行目にも数式をコピーしましょう。

「あいうえお」の中に「かき」はありませんのでエラーになります。

4行目・5行目は、引数の「開始位置」を指定した場合、どのようになるか確認します。

C4 セルに次の数式を入力します。

=SEARCH(B4, A4, 3)

開始位置を3に指定しています。

3つ目の引数「開始位置」に”3”を指定しています。ので、この場合「かきくけこ」の中の「くけこ」から検索をします。「くけこ」の中では1番目に出現しますが、FIND関数の結果は、文字列全体の先頭文字からになるので、”3”となります。

5行目は、開始位置を4にします。

=SEARCH(B5, A5, 4)

開始位置が”4”なので、「けこ」から「く」を探します

結果はありませんので、エラーになっています。

あいまい検索

SEARCH関数では、「?」や「*」のワイルドカード文字列を使った検索が可能です。


ワイルドカード文字列とは、〇〇を含むなどあいまいな検索をするために使う特殊な記号です。

「?」は任意の1文字。「*」は0文字以上の任意の文字列を表します。

「?」や「*」自体の文字列を検索したい場合は、「~?」「~*」など「~」を前に付けて表現します。

逆に FIND関数はワイルドカード文字列は使用出来ないため、「?」や「*」を含む検索は「~」なしで検索出来ます。


次の表は、「●●県」の位置を、SEARCH関数とFIND関数でそれぞれ検索しています。

SEARCH関数は、ワイルドカード文字列が使用出来ますので、答えが出ていますが、FIND関数では利用できないため、エラーになっていることが確認出来ます。