Excelで文字列の位置を検索する関数には SEARCH関数 がありますが、これは文字数を基準に検索を行います。一方、SEARCHB関数 はバイト数を基準に検索するのが大きな特徴です。特に全角文字(2バイト)と半角文字(1バイト)が混在する文字列を扱うときに便利です。本記事では、SEARCHB関数の使い方やSEARCH関数との違いをわかりやすく解説します。
SEARCHB関数とは?
SEARCHB関数は、指定した文字列の中で検索文字列が最初に現れるバイト位置を返す関数です。
- 全角文字 → 2バイトとしてカウント
- 半角文字 → 1バイトとしてカウント
- 大文字・小文字は区別しません
書式
=SEARCHB(検索文字列, 対象文字列, [開始位置])
- 検索文字列:探したい文字列。
- 対象文字列:検索対象となるセルや文字列。
- 開始位置(省略可):検索を始めるバイト位置。省略時は1バイト目から検索。
使用例
- 単純な検索
=SEARCHB("タ","東京タワー")
→ 結果:5
(「東京」は4バイト、「タ」は5バイト目から) - 検索開始位置を指定
=SEARCHB("o","Tokyo",3)
→ 結果:5
(3バイト目以降で最初の「o」は5バイト目
活用例
- 全角・半角混在データの処理
全角2バイト、半角1バイトで文字列を正確に分割可能。 - システム連携データの解析
外部システムから出力されたバイト単位の文字列処理に活用。 - 文字列抽出の前処理
MIDB関数
と組み合わせてバイト位置から文字列を取り出せます。
注意点
- 大文字・小文字を区別しない
区別したい場合はFINDB関数
を利用。 - 検索文字列がない場合はエラー
見つからないと#VALUE!
エラーになります。 - 開始位置はバイト単位
全角2バイト、半角1バイトの仕様を理解しておく必要があります。
関連関数
- SEARCH関数:文字数単位で検索
- FINDB関数:バイト単位で大文字・小文字を区別して検索
- MIDB関数:バイト単位で文字列を抽出
まとめ
SEARCHB関数は、文字列内で検索文字列が最初に現れるバイト位置を返す関数です。
- 書式:
=SEARCHB(検索文字列, 対象文字列, [開始位置])
- バイト単位での文字列処理に対応し、全角・半角混在データに便利
- MIDB関数と組み合わせることで文字列の分割や抽出が可能