SEARCH関数の構文解説と使用ガイド −検索する−

本記事は ExcelのSEARCH関数 を解説します。
SEARCH関数は Excel 365、Excel 2010 以降 で利用可能です。
Excel の SEARCH 関数は、「サーチ(Search)」と呼ばれます。
文字列の中から指定した文字列が 何文字目に現れるかを調べるため に使用されます。
SEARCH(サーチ)という語は「探す/検索する」を意味し、
文字列検索機能を表す名前として付けられたと考えられます。
Microsoft Excel の「文字列操作関数」のカテゴリに属します。
目次
🔹 こんな時に便利!
SEARCH関数を使わない場合、
- 文字列の中に特定の語句が含まれているかどうかを手作業で探す必要があり、検索ミスや見落としが起こりやすくなります。
しかし、SEARCH関数を使うことで
- 文字列中の位置を自動で検索し、数値で返してくれる
- 大文字・小文字を区別せず検索できる
- ワイルドカード( * ?)を使って柔軟な検索ができる
といったメリットがあり、
文字列の判定・抽出・条件式などが 正確かつ効率的 に行えるようになります。

どんな関数?
SEARCH(検索文字列,対象,開始位置)\ 文字列が最初に現れる位置の文字番号を返します。大文字、小文字は区別されません。
SEARCH(サーチ)とは、文字列の中で、指定した語句が最初に現れる位置を数字で返す関数です。
例えば、「東京都中央区」で「中央」を検索すると、「中央」が何文字目から始まるかを返します。

なお、大文字・小文字は区別されません。
たとえば英語の “TOKYO” と “tokyo” を 同じものとして探す という意味です。
つまり、入力の大小文字が混ざっていても、見つけ方は同じです

引数(関数に渡す値:関数の入力)

SEARCH(検索文字列, 対象, [開始位置])
文字列が最初に現れる位置の文字番号を返します。大文字、小文字は区別されません。

- 検索文字列
- 「探したい言葉や文字」を入れます
- 例:
"中央"や"@"など
- 例:
- 「探したい言葉や文字」を入れます

- 対象
- 「探す相手(探される文)」を入れます
- セル参照(例:
A2)や直接の文字列でもOKです- 例:
A2が「東京都中央区」の場合、ここが “検索される側”
- 例:

- 開始位置
- 「どこから探し始めるか」を数字で指定します。途中から再検索したいときに便利です
- 例:
1なら先頭から、5なら5文字目から探し始めます。
- 例:
- 「どこから探し始めるか」を数字で指定します。途中から再検索したいときに便利です

- ポイント
- 位置を数値で返す
- 大文字小文字を区別しない
- SEARCH関数はワイルドカード(
*、?)に対応

ワイルドカードの詳細は、以下を参照して
データ分析の豆知識を簡潔説明 -ワイルドカードの基本と曖昧検索-
戻り値(返ってくる結果:出力)
結果は 「何文字目から見つかったか」という数字 です。
例:
「東京都中央区」で「中央」を探す →“4”(4文字目から「中央」が始まる、という意味)

🔎 SEARCH関数の使用例(パターン別)
パターンA:文字列中の位置を自動で検索し、数値で返してくれる
顧客名や商品名のテキストから、特定語句がどこから始まるかを機械的に取得して後続処理(抽出・分割・タグ付け)に使います。

サンプルデータ
| No | 商品名(A列) |
|---|---|
| 1 | 春季セール_家電キャンペーン |
| 2 | 期間限定_家具セール |
| 3 | 大特価セール_アウトレット |
ステップ(A列に対して「セール」を検索)
- 結果表示セル(例:
B2)を選択 - 次の式を入力
-
=SEARCH("セール", A2)
-
- Enterで確定
B2を下にコピー(B3、B4へ)- 結果
- 返ってくる数値が「セール」が始まる位置
- 例えば「春季セール_家電キャンペーン」なら → 4 など
- 返ってくる数値が「セール」が始まる位置
パターンB:大文字・小文字を区別せず検索できる
入力者によって「TOKYO」「Tokyo」「tokyo」など表記ゆれがあるデータから、同一キーワードとして判定したい場合などです。

サンプルデータ
| No | 顧客名(A列) |
|---|---|
| 1 | 株式会社Tokyoサービス |
| 2 | 株式会社TOKYO物流 |
| 3 | 東京テクノロジー株式会社 |
ステップ(A列に対して「tokyo」を検索)
- 結果表示セル(例:
B2)を選択 - 次の式を入力
=SEARCH("tokyo", A2)
- Enterで確定
B2を下にコピー(B3、B4へ)- 結果
- 「Tokyo」「TOKYO」「tokyo」いずれも一致し、開始位置を返す
- 例:
- 「株式会社Tokyoサービス」 → 5
- 「株式会社TOKYO物流」 → 5
- 「東京テクノロジー株式会社」 → #VALUE!(英字“tokyo”は含まれないため)
ポイント:大小文字は無視される。
パターンC:ワイルドカード(*、?)を使って柔軟に検索できる
「“部”で終わる部署名のみ拾いたい」「“東京”で始まる地名」「フォーマットに一部可変の文字列パターンを検索」したいときなどです。
* は任意の文字列、? は任意の1文字というワイルドカードに、SEARCH関数は対応している。

サンプルデータ(日本語)
| No | 内容(A列) |
|---|---|
| 1 | 備考:(急ぎ)至急配送 |
| 2 | 案内:(期間限定キャンペーン)開催中 |
| 3 | 重要:未定事項あり |
| 4 | (至急)資料送付 |
「*部」=“部”で終わるパターン
- 結果表示セル(例:
B2)を選択 - 次の式を入力
=SEARCH("*部", A2)
- Enterで確定
B2を下にコピー(B3、B4へ)- 結果
| No | 内容(A列) | 結果 |
|---|---|---|
| 1 | 備考:(急ぎ)至急配送 | 4 |
| 2 | 案内:(期間限定キャンペーン)開催中 | 4 |
| 3 | 重要:未定事項あり | #VALUE! |
| 4 | (至急)資料送付 | 1 |
「東京?区」=“東京○区”のように1文字可変
| No | 所在地(A列) |
|---|---|
| 1 | 東京都千代田区 |
| 2 | 東京都中央区 |
| 3 | 東京都港区 |
- 結果表示セル(例:
B2)を選択 - 次の式を入力
=SEARCH("東京都?区", B4)
- Enterで確定
B2を下にコピー(B3、B4へ)- 結果
- 「東京都港区」→ 文字列中の一致開始位置(通常 1)
?は1文字だけ可変するため「東京〇区」に合致
- 「東京都港区」→ 文字列中の一致開始位置(通常 1)
補足:ワイルドカードを文字として検索したい場合は
*や?のように チルダ(~)を付けてエスケープします。
最後に
SEARCH関数の構文(引数と戻り値)を説明し、代表的なパターンの使用例を紹介しました。
このどれかに当てはまると思いますので、活用していただければと思います。
- パターンA:位置の数値取得
- さらに LEFT/RIGHT/MID などと組み合わせると、分割・抽出できる(例:「セール」位置で切り分け)
- パターンB:大小文字を区別しない
- 表記ゆれデータを判定(Tokyo/TOKYO/tokyo)
- パターンC:ワイルドカード
- → フォーマットが一定でない文字列も柔軟にヒット(
*:任意文字列、?:任意1文字)
- → フォーマットが一定でない文字列も柔軟にヒット(
