ExcelのSEARCHB関数の使い方について具体例を交えて説明します。
書式
SEARCHB(検索文字列,対象,[開始位置])
※ []内の引数は任意の項目です。
関数と変数の説明
対象の文字列の開始位置から検索文字列の場所を調べ、その検索文字列のある最初のバイト数を返します。該当する検索文字列が存在しないと「#VALUE!」を返します。
- 検索文字列(必須項目):検索したい文字列です。
- 対象(必須項目):検索文字列を含む検索する対象となる文字列です。
- 開始位置(任意項目):検索を開始する位置を指定します。0以下を指定すると「#VALUE!」を返します。
- 大文字と小文字は区別せず、検索します。
- 検索文字列にワイルドカードが利用できます。
似た動作をするFIND関数は大文字と小文字を区別し、ワイルドカードは使えません。
使用例
A | B | C | |
---|---|---|---|
1 | 対象文字列 | ||
2 | マイクロソフト(microsoft)はソフトウェア会社です。 | ||
3 | |||
4 | 取得したい内容 | 出力結果 | 計算式 |
5 | 1.「ソフト」の位置を知りたいとき([開始位置]変数省略のとき) | 9 | =SEARCHB(“ソフト”,A2) |
6 | 2.「ソフト」の位置を知りたいとき([開始位置]変数1のとき) | 9 | =SEARCHB(“ソフト”,A2,1) |
7 | 3.10バイト目以降に出現する「ソフト」の位置を知りたいとき | 28 | =SEARCHB(“ソフト”,A2,10) |
8 | 4.該当する文字が存在しないとき | #VALUE! | =SEARCHB(“アップル”,A2,6) |
9 | 5.[開始位置]変数が0以下のとき | #VALUE! | =SEARCHB(“ソフト”,A3,0) |
「1.「ソフト」の位置を知りたいとき([開始位置]変数省略のとき)」のケースは開始位置変数を省略したときの出力結果です。開始位置が省略されあときは1で計算されるため、「2.「ソフト」の位置を知りたいとき([開始位置]変数1のとき)」と同じ結果になります。「ソフト」の前の「マイクロ」で全角文字なので1文字2バイトとなり4文字×2バイト=8バイトです。その次のバイトから「ソフト」となるため、8バイト+1バイト=9バイトとなり、9が返ってきます。
「3.10バイト目以降に出現する「ソフト」の位置を知りたいとき」のケースは開始位置が10バイト目からとなっているので、10バイト÷2バイト=5文字となり、最初の5文字は無視して、6文字目からとなる「フト(microsoft)はソフトウェア会社です。」から「ソフト」の位置の調べます。
そうすると「ソフトウェア会社です」の「ソフト」が該当します。最初の「マイクロソフト」は7文字×2バイト(全角文字のため)=14バイト、「(microsoft)」は11文字×1バイト(半角文字のため)=11バイト、「は」は1文字×2バイト(全角文字のため)=2バイトです。合計すると14バイト+11バイト+2バイト=27バイトとなります。その次のバイトから「ソフト」となるため、27バイト+1バイト=28バイトとなり、28が返ってきます。
「4.該当する文字が存在しないとき」のケースは対象文字列に「アップル」は存在しません。そのときは「#VALUE!」が返ってきます。
「5.[開始位置]変数が0以下のとき」のケースは開始位置が0と誤った値です。その場合は「#VALUE!」が返ってきます。
SEARCH関数と他の関数の組み合わせで便利に使う方法
類似関数
- SEARCH関数(バイト数を返すのではなく、文字数を返す関数です。)
コメント