FIND関数とSEARCH関数の違いは?
Excelでは、テキストデータの中から特定の文字や文字列の位置を見つけるためにFIND関数とSEARCH関数がよく使われます。どちらも似たような機能を持っていますが、いくつかの違いがあります。この記事では、目的や具体例を交えながら、FIND関数とSEARCH関数の違いについてわかりやすく解説します。
FIND関数とSEARCH関数の基本的な構文
- FIND関数: =FIND(検索文字列, 対象文字列, [開始位置])
- SEARCH関数: =SEARCH(検索文字列, 対象文字列, [開始位置])
どちらの関数も、対象文字列内で検索文字列が最初に出現する位置を返します。開始位置は省略可能で、省略すると文字列の先頭から検索を開始します。
違い1: 大文字と小文字の区別
FIND関数は、大文字と小文字を区別して検索します。つまり、「A」と「a」は異なる文字として扱われます。一方で、SEARCH関数は大文字と小文字を区別せずに検索します。
事例: 大文字と小文字を区別する必要がある場合
例えば、「Apple」という単語の中で「A」の位置を知りたい場合、FIND関数を使うと、「A」と「a」を区別して「A」の位置を正確に返します。
A | B | |
---|---|---|
1 | 文字列 | 検索結果 |
2 | Apple | =FIND(“A”, A2) |
3 | apple | =SEARCH(“A”, A3) |
結果
- いずれも「1」と出力されます。
違い2: ワイルドカードの対応
SEARCH関数は、ワイルドカード(「*」や「?」)を使って部分一致検索が可能です。たとえば、「*」は任意の文字列に、「?」は任意の1文字にマッチします。一方、FIND関数はワイルドカードを認識せず、特定の文字列でしか検索できません。
事例: ワイルドカードを使った検索が必要な場合
例えば、「cat」や「car」という単語が含まれる文字列から「c」から始まる3文字の単語を見つけたい場合、SEARCH関数を使って「c?t」と指定することで検索できます。
A | B | |
---|---|---|
1 | 文字列 | 検索結果 |
2 | cat | =SEARCH(“c?t”, A2) |
3 | car | =SEARCH(“c?t”, A3) |
結果
- B2は「1」、B3は「エラー」
- =IFERROR(SEARCH(“z”, a3), “なし”) のようにしてエラー処理をします。
まとめ
FIND関数とSEARCH関数は似た機能を持っていますが、いくつかの重要な違いがあります。
- 大文字と小文字の区別: FIND関数は区別しますが、SEARCH関数は区別しません。
- ワイルドカードの対応: SEARCH関数はワイルドカードに対応していますが、FIND関数は対応していません。
目的に応じてFIND関数とSEARCH関数を使い分けることで、文字列検索を効率的に行うことができます。
使用した関数について

FIND関数で指定した文字の位置を求める方法と2つ目の文字位置や右からの位置の求め方についてわかりやすく解説
FIND関数とFINDB関数についてFINDとFINDBの概要セル内の指定した文字の位置を求めるExcel関数=FIND( 位置を知りたい文字列 , 対象 , 開始位置 )=FINDB( 位置を知りたい文字列 , 対象 , 開始位置 )概要 指定した文字列の位置を求める 開始位置は検索のスタート地点、2文字目からとする...

IFERROR関数でエラー時の値を指定する方法とVLOOKUPとの組み合わせ方についてわかりやすく解説
IFERROR関数についてIFERRORの概要エラー時の値を指定Excel関数=IFERROR( 値, エラー時の値 )概要 指定した値がエラーの場合に、代替の値を返します。エラーでない場合はその値を返します。 #DIV/0! や #VALUE! などのエラーを処理できます。 数式のエラーによる表示崩れを防ぐために役立...

SEARCH関数で指定文字の位置を求める方法についてわかりやすく解説
SEARCH関数とSEARCHB関数についてSEARCHの概要セル内の指定文字の位置を求めるExcel関数=SEARCH( 文字列 , 対象 )=SEARCHB( 文字列 , 対象 )概要 セルの指定した文字の位置を求める 文字列は1文字である必要はない SEARCHは大文字と小文字の区別をしないが、FINDは区別する...