SEARCHB関数 – 文字列操作

SEARCHB関数 – バイト単位で文字列中の文字や文字列の位置を検索する関数


1. 使い方と活用例

SEARCHB関数は、文字列の中から指定された文字または文字列が最初に現れるバイト位置を返す関数です。全角文字を2バイト、半角文字を1バイトとして扱うため、特に日本語や中国語などのマルチバイト文字環境での使用に適しています。検索は大文字・小文字を区別しません。

2. 基本の書式

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

3. 引数の説明

  • 検索文字列 – 検索対象となる文字または文字列を指定します。
  • 対象文字列 – 検索を行う元の文字列を指定します。
  • [開始位置] – 検索を開始するバイト位置(省略可能)。省略すると1から開始されます。

4. 使用シーン

  • 全角と半角が混在する文字列でのバイト数に基づく位置計算を行いたいとき
  • マルチバイト文字環境(日本語、中国語、韓国語など)で正確な文字位置を取得したいとき
  • 旧システムやデータベースとの連携で、バイト数に依存した処理が必要な場合

5. 応用のポイント

SEARCHB関数は、アルファベット圏では通常のSEARCH関数と同じ結果になりますが、日本語などのマルチバイト文字が含まれる場合には異なる結果になることがあります。特に、LEFTBやMIDB関数と組み合わせることで、バイト単位での文字列処理が可能となります。

6. 具体例とその解説

=SEARCHB("に", "こんにちは")

この例では、「こんにちは」の中から「に」を検索します。「こ」「ん」は全角でそれぞれ2バイト、「に」は5バイト目から始まるため、結果は5となります。

=SEARCHB("a", "abcde", 3)

この式では、「abcde」の3バイト目以降から「a」を検索しますが、3バイト目以降に「a」は存在しないため、エラーになります。IFERROR関数で対処するのが有効です。

7. 関連関数の紹介

  • SEARCH関数 – バイトではなく文字単位で検索する関数(大文字・小文字の区別なし)
  • FINDB関数 – バイト単位で検索を行い、大文字・小文字を区別する関数
  • LEFTB関数 – 指定バイト数の文字列を左側から取り出す関数
  • MIDB関数 – 指定バイト位置から指定バイト数分の文字列を取り出す関数
  • LENB関数 – バイト数で文字列の長さを返す関数

8. まとめ

SEARCHB関数は、バイト数を考慮した文字列検索が可能なため、日本語を含むマルチバイト環境で特に有効です。文字列の一部を抽出したり位置を計算したりする際に、他のB付き関数と組み合わせることで精度の高い操作が行えます。

9. 対応バージョン

SEARCHB関数は、日本語版を含むマルチバイト文字に対応したExcel(主にMicrosoft 365や日本語環境のExcel)で使用可能です。英語版など一部の言語環境では使用できない場合があります。