SEARCH 関数は、開始位置を先頭にして、指定された文字列 (検索文字列) を他の文字列 (対象) の中で検索し、その文字列が最初に現れる位置の文字番号を返します。SEARCH 関数を使用すると、ある文字列に含まれる特定の文字列の位置を調べることができ、さらに MID 関数や REPLACE 関数と組み合わせて、その文字列を置き換えることができます。
書式
SEARCH(検索文字列,対象,開始位置)
検索文字列 検索する文字列を指定します。半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として検索文字列内で使用できます。ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に半角のティルダ (~) を付けます。
対象 文字列を指定します。この中から検索文字列が検索されます。
開始位置 検索対象の文字列における文字番号を指定します。この番号から検索が開始されます。開始位置を指定すると、指定した文字の数だけ検索をスキップできます。たとえば、文字列 "AYF0093.YoungMensApparel" を検索の対象とします。このとき、文字列のシリアル番号部分をスキップし、説明部分に含まれる最初の "Y" が現れる位置を検索するには、開始位置を 8 に設定します。検索は 8 文字目から開始され、検索文字列がその次の位置に見つかるので、SEARCH 関数は 9 を返します。開始位置が 1 より大きい場合、指定された数だけ文字列がスキップされますが、SEARCH 関数では常に、対象の先頭文字からの位置を返します。
解説
-
SEARCH 関数では、文字列を検索するとき、英字の大文字と小文字は区別されません。
-
SEARCH 関数には FIND 関数と同様な機能がありますが、FIND 関数では、英字の大文字と小文字が区別されます。
-
検索文字列が見つからないと、エラー値 #VALUE! が返されます。
-
開始位置を省略すると、1 を指定したと見なされます。
-
開始位置に 0 以下の整数を指定した場合、または開始位置が対象の文字数よりも大きい場合は、エラー値 #VALUE! が返されます。
使用例
列 1 |
列 2 |
列 3 |
数式 |
説明 (結果) |
Statements |
Profit Margin |
margin |
=SEARCH("e",[Col1],6) |
Col1 に含まれる文字列を対象として、6 番目の文字以降に現れる最初の "e" の位置を返します (7) |
Statements |
Profit Margin |
margin |
=SEARCH([Col3],[Col2]) |
"Profit Margin" という文字列を対象として、"margin" の位置を返します (8) |
Statements |
Profit Margin |
margin |
=REPLACE([Col2],SEARCH([Col3],[Col2]),6,"Amount") |
"Margin" という文字列を "Amount" に置き換えます (Profit Amount) |