指定の文字列が別の文字列のどこにあるか確認する
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番目に出現しますが、SEARCH関数の結果は、文字列全体の先頭文字からになるので、”3”となります。
5行目は、開始位置を4にします。
=SEARCH(B5, A5, 4)
開始位置が”4”なので、「けこ」から「く」を探します
結果はありませんので、エラーになっています。
あいまい検索
SEARCH関数では、「?」や「*」のワイルドカード文字列を使った検索が可能です。
ワイルドカード文字列とは、〇〇を含むなどあいまいな検索をするために使う特殊な記号です。
「?」は任意の1文字。「*」は0文字以上の任意の文字列を表します。
「?」や「*」自体の文字列を検索したい場合は、「~?」「~*」など「~」を前に付けて表現します。
逆に FIND関数はワイルドカード文字列は使用出来ないため、「?」や「*」を含む検索は「~」なしで検索出来ます。
次の表は、「●●県」の位置を、SEARCH関数とFIND関数でそれぞれ検索しています。
SEARCH関数は、ワイルドカード文字列が使用出来ますので、答えが出ていますが、FIND関数では利用できないため、エラーになっていることが確認出来ます。
コメント