クイックナビゲーション
SEARCH、SEARCHB関数
概要
SEARCH関数は指定した文字列を別の文字列内で検索し、その開始位置を返します。大文字小文字を区別せずワイルドカードも使用可能です。SEARCHBはバイトレベルの文字数計算を行う非推奨関数です。
構文
SEARCH(検索文字列,対象,[開始位置])
SEARCHB(検索文字列,対象,[開始バイト位置])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 検索文字列 | 文字列 |
はい | 検索対象のテキスト文字列。ワイルドカード(?:任意1文字、*:任意複数文字)使用可能 |
| 対象 | 文字列 |
はい | 検索を行う文字列 |
| 開始位置 | 数値 |
いいえ | 検索開始位置。省略時は1から |
SEARCH, SEARCHB関数の使用
SEARCH関数はテキスト内の特定文字列位置を特定するために使用されます。MIDやREPLACE関数と組み合わせて文字列操作を行う際の基本関数です。大文字小文字区別せず柔軟な検索が可能です。
SEARCH, SEARCHBの一般的な例
基本的な位置検索
=SEARCH("n","printer")
"printer"内で"n"の位置を検索し4を返す
セル参照を使用した検索
=SEARCH(A4,A3)
A3内でA4の文字列位置を検索。Profit Margin内でmarginの位置8を返す
REPLACEとの組み合わせ
=REPLACE(A3,SEARCH(A4,A3),6,"Amount")
検索位置を特定し文字列置換。Profit Amountを返す
MID関数との連携
=MID(A3,SEARCH(" ",A3)+1,4)
スペース以降の4文字抽出。Margを返す
引用符内文字列抽出
=MID(A5,SEARCH("\"",A5)+1,SEARCH("\"",A5,SEARCH("\"",A5)+1)-SEARCH("\"",A5)-1)
引用符で囲まれた文字列を抽出。bossを返す
よくある質問
SEARCHは大文字小文字を区別せずワイルドカード対応。FINDは区別しワイルドカード非対応です。
SEARCHBは非推奨です。バイトレベルの文字数計算が必要な旧日本語環境でのみ使用。
#VALUE!エラーが返されます。
一般的なエラーと解決策
#VALUE!エラー
Cause: 検索文字列が見つからない、または開始位置が不正
Solution: 正しい文字列と開始位置を確認してください
予期しない結果
Cause: サロゲートペア文字の扱い
Solution: 互換性バージョン2でSEARCHを使用
注記
- SEARCHBは非推奨。SEARCH関数を使用してください
- 開始位置0以下または文字列長超えで#VALUE!
- ワイルドカード文字を通常文字として検索する場合は~を付ける(例:~?、~*)
- 互換性バージョン2でサロゲートペア改善
- Unicode絵文字のバリエーションセレクターは別文字としてカウント
互換性
利用可能: Excel 2007+, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365
利用不可: Excel 2003以前
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 2007+