関数(サイト内)検索

Loading

2010/07/24

#212 SEARCH(B)


書式
SEARCH(検索文字列,対象,[開始位置])
SEARCHB(検索文字列,対象,[開始位置])

概要
指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返す。
(基本機能は FIND(B)関数と大差ない。)

引数
検索文字列検索する文字列を指定する。
対象必須。検索文字列を含む文字列を指定する。
開始位置省略可能。検索を開始する位置を指定する。 対象を左端から検索する場合、省略するか 1 を指定する。

補足/解説
1. 検索対象の大文字と小文字は区別されて検索されない。区別したい場合は、FIND(B) 関数を利用のこと。
2. 検索文字列にワイルドカードの指定が可能。
3. 検索文字列に空文字("")を指定した場合、最初の文字に検索ヒットしたと見なされる。( 1 または、開始位置に指定した番号が返却される。)
4. 開始位置の指定については、検索文字列が複数あることがわかっている場合等に、最初のもしくは幾つかの検索ヒットを避ける意味で、それ以降の開始位置を指定する等の用途が考えられる。
5. 開始位置の指定については、SEARCH 関数は文字数、SEARCHB 関数はバイト数を指定する。
ただし、SEARCH 関数の利用において、半角カナ文字等を含む文字列をカウントする場合、濁点が 1 文字としてカウントされるので注意が必要である。
6. 開始位置に、0(ZERO)以下を指定したり、対象の文字数より大きい数値を指定した場合、#VALUE! エラーとなる。
7. SEARCH / SEARCHB の違いについて、関数リファレンスによれば「 SEARCH 関数は、SBCS を使う言語での使用を意図したもので、SEARCHB 関数は、DBCS を使う言語での使用を意図したもの」との記載があるが、DBCS に属する日本語環境では「 SEARCHB 関数を利用すべき!?」という話ではない。
この説明は「開発者目線で」文字セットの違いに起因して文字数の考え方を 2 パターン用意する必要が生じたことを説明したに過ぎず、どちらの関数を利用するか?は、関数の「利用者側の」使用目的による判断でしかない。
8. 文字セットの違いと考え方については、以下のページを参照のこと。
 ⇒ SBCS / DBCS

特記事項

使用例
参考:Excel2010 関数リファレンス

I.M.L.,ltd

0 件のコメント:

コメントを投稿