SEARCH関数は、特定の文字が文字列の中で何番目の位置にあるか大文字・小文字を区別せず調べる関数です。
類似する検索関数にはFIND関数がありますが、FIND関数は大文字と小文字を区別します。対して、SEARCH関数は大文字と小文字を区別しませんので、データの中に大文字と小文字が混在しているような場合には役立ちます。
SEARCH関数の基本的な使い方
対応バージョン:Excel365 2019 2016 2013 2010
SEARCH関数の書式です。
=SEARCH(検索文字列,検索対象,開始位置)
※カッコ内の「検索文字列,検索対象,開始位置」を引数といいます。
※引数〔開始位置〕は省略できます。
※引数〔検索文字列〕に空白の文字列(””)を指定すると、引数〔開始位置〕の値が返されます。
※引数〔開始位置〕を省略している場合は「1」が返されます。
引数の説明
- 〔検索文字列〕:検索したい文字列を指定
- 〔検索対象〕:検索対象の文字列やセルを指定
- 〔開始位置〕:検索対象の何文字目から検索するか指定。先頭から検索する場合は省略できます
SEARCH関数の使用例
下記サンプルは、大文字の「O」を検索しています。

=SEARCH(“O”,A4)
引数〔検索文字列〕には大文字の「O」を指定。引数〔検索対象〕にはA4セル(文字列)を指定。文字列の先頭から検索するので、引数〔開始位置〕は省略です。
A4セルの内容の場合は、最初に出現する「O」が5番目なので、結果は「5」が返ります。
SEARCH関数とFIND関数の違い
C4セルには「FIND関数」が入力されていますが、検索対象文字列に大文字の「O」が含まれていますので同じ結果が返されます。
しかし、検索対象文字列が小文字の場合は、SEARCH関数とFIND関数では結果が異なります。
FIND関数は大文字と小文字を区別しますので、検索対象文字列に大文字の「O」が含まれない場合は、C5セルのようにエラー(#VALUE!)が表示されます。
FIND関数は、検索対象文字列の中に検索ワードを見つけれなかったとき、C5セルやC8セルのようにエラーになりますので、IF関数などを使って、エラー表示を回避する処理が必要かもしれません。
また、SEARCH関数では「ワイルドカード」が使えるという相違点もあります。
SEARCH関数はワイルドカードが使える
SEARCH関数は、FIND関数と違って「ワイルドカード」が使えます。

上記の例の場合は、カッコ内の文字列が何であっても「ワイルドカード」を使うことで検索が可能です。
SEARCH関数で使えるワイルドカードの種類
ワイルドカード | 意味 | 使い方 |
---|---|---|
* | 1文字以上の文字列 | “A*” Aで始まる文字列 “*A” Aで終わる文字列 “*A*” Aを含む文字列 |
? | 1文字の文字列 | “A?” Aで始まる2文字 “?A” Aで終わる2文字 “?A?” Aを含む3文字 |
SEARCH関数と同じ分類の関数
SEARCH関数と同じ系列の関数は以下のページで探せます。