関数(サイト内)検索

Loading

2010/07/24

#210 FIND(B)


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

概要
指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返す。

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

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

特記事項

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

I.M.L.,ltd

0 件のコメント:

コメントを投稿