スプレッドシートのSEARCHB関数とは
SEARCHB関数は日本語、中国語(簡体字・繁体字)、韓国語などの全角文字を2バイトとしてカウントして、指定したテキスト内で検索文字列が最初に見つかった位置を返すGoogle スプレッドシートの関数です。英名では double-byte character sets と呼ばれる文字セット専用の関数として設計されており、通常のSEARCH関数とは文字カウント方法が異なります。
この関数の基本構文はSEARCHB(検索文字列, 検索対象のテキスト, [開始位置])
で、3つのパラメーターを受け取ってテキスト型の値を返します。検索文字列が見つからない場合は#VALUE!エラーが返され、IFERROR関数と組み合わせてエラー処理を行うことが推奨されているです。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
SEARCHB関数の基本的な引数設定
第1引数の検索文字列には、探したい文字や文字列を指定し、ワイルドカード文字として疑問符(?)で任意の1文字、アスタリスク(*)で任意の文字列を表現できます。実際の疑問符やアスタリスクを検索する場合は、チルダ(~)を前に付けて~?
や~*
のようにエスケープする必要があります。
=SEARCHB("新", "农历新年", 2)
第2引数の検索対象テキストは、検索を実行するセルや文字列を指定し、第3引数の開始位置は省略可能で既定値は1となっています。引数の順序は他のテキスト関数であるSPLITやSUBSTITUTE関数と異なるため、逆順で指定するとエラーが発生する可能性が高いので注意が必要です。
関数実行時は指定した開始位置から検索が開始され、最初にマッチした文字列の位置が返されるため、複数の同じ文字列が存在する場合でも最初の位置のみが結果となります。全角文字は2バイト、半角文字は1バイトとしてカウントされるため、位置の計算において通常のSEARCH関数とは異なる結果が得られます。
全角文字対応による位置計算の特徴
SEARCHB関数は日本語や中国語などの全角文字を含むテキストで正確な位置計算を行うため、各全角文字を2バイト分として扱います。例えば「あいうえお」という文字列内で「う」を検索した場合、通常のSEARCH関数では3を返しますが、SEARCHB関数では5を返すことになります。
=SEARCHB("う", "あいうえお")
この関数は標準的な文字セット用のSEARCH関数と対になる機能として提供されており、双バイト文字セット専用として設計されているため、アジア圏の言語処理において重要な役割を果たします。半角と全角が混在するテキストでは、半角文字は1バイト、全角文字は2バイトとして計算されるため、位置の把握が複雑になる場合があります。
実際の使用場面では、日本語テキスト内での特定キーワード検索や、全角文字を含むデータの位置特定において威力を発揮します。関連する関数としてFINDB関数があり、こちらは大文字小文字を区別して検索を行う点でSEARCHB関数と区別されているため、用途に応じて使い分けることが重要です。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- Canvaとは?使い方やアカウント登録などを初心者向けに解説
- git configで設定情報を確認・表示する方法
- 「Pythonはやめとけ」と言われる理由と学習するメリット
- Ubuntuのversionを確認する方法
- Geminiで画像を生成する方法|ChatGPTとの比較結果も紹介