
ExcelやGoogleスプレッドシートのFIND関数とSEARCH関数は、文字列の検索に便利な関数ですが、その挙動には明確な違いがあります。この記事では、両者の違いを比較しながら、あいまい検索に便利なワイルドカードを使ったSEARCH関数の使い方を解説します。
はじめに
FIND関数は、ワイルドカード(*や?)を使うことができません。
FIND関数であいまい検索をしたい場合は、FIND関数とほぼ同じ機能を持つSEARCH関数を使います。この記事では、両関数の違いと使い方について解説します。
FIND関数とSEARCH関数の違い
FIND関数は「大文字と小文字」といった違いを厳格に区別するため、完全一致の検索が得意なのが特徴です。あいまい検索は苦手で、ワイルドカードを使うことができません。
一方、SEARCH関数は「大文字と小文字」といった違いを区別せず、あいまい検索が得意なのが特徴で、ワイルドカードを使うこともできます。
| 関数の比較 | ワイルドカード | 半角と全角 | 大文字と小文字 |
|---|---|---|---|
| FIND関数 | 使えない | 区別する | 区別する |
| SEARCH関数 | 使える | 区別する | 区別しない |
FIND関数の使い方

FIND関数は、大文字と小文字を厳密に区別して文字列を検索します。
たとえば、セルA2の「SpreadsSheets」という文字列から「s」を検索する場合、大文字のSと小文字のsを区別して検索します。
例:=FIND("s",A2)
FIND関数は、先頭にある大文字のSを無視して、7文字目の小文字のsの位置を返します。これが、SEARCH関数との大きな違いです。
SEARCH関数の使い方

SEARCH関数は、大文字と小文字を区別せずに文字列を検索します。
たとえば、セルA2の「SpreadsSheets」という文字列から「s」を検索する場合、大文字のSと小文字のsを区別せずに検索します。
例:=SEARCH("s",A2)
SEARCH関数は、先頭にある大文字のSを小文字のsと一致と判定し、1文字目の位置を返します。これが、FIND関数との大きな違いです。
ワイルドカードを使った検索

SEARCH関数は、ワイルドカードを使えるという特徴があり、あいまいな文字列を検索できます。
?は「任意の1文字」を、*は「任意の数の文字列」を表します。
たとえば、A列のテキストから「ID」や「IP」といったIで始まる2文字の位置を検索したい場合、?を使って検索します。
例:=SEARCH("I?",A2)
このように、SEARCH関数はFIND関数とは異なり、共通のパターンを持つデータをまとめて検索することが可能です。