
ExcelやGoogleスプレッドシートのFILTER関数は、デフォルトでは大文字と小文字を区別しません。「Apple・apple・apple」を区別して抽出したい場合、他の関数と組み合わせる必要があります。この記事では、FILTER関数を使って大文字と小文字を区別する方法から、部分一致の検索まで詳しく解説します。
FILTER関数:使い方

FILTER関数は、指定した「条件」に基づいて、特定の行だけを絞り込んで抽出します。
たとえば、A列のテキストから「PDF」の行だけを抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:A5,A2:A5="PDF")
このとき、FILTER関数は「大文字と小文字」、「全角と半角」を区別しません。 そのため、「PDF」「pdf」のどれがA列にあっても、条件と一致した行として抽出されます。
FILTER関数の引数:(抽出範囲, 条件1, [条件2, …])
FILTER関数:厳密な検索

大文字・小文字・半角・全角を区別して抽出したい場合は、EXACT関数を組み合わせます。
たとえば、A列のテキストから「PDF」と完全に一致する行だけを抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:A5,EXACT(A2:A5,"PDF"))
この数式では、EXACT関数で2つの文字列が同一であるかを検証し、その結果を{FALSE; FALSE;TRUE; FALSE}のような配列で、FILTER関数の条件として渡しています。
EXACT関数の引数:(文字列1, 文字列2)
FILTER関数:部分一致で厳密に検索する

FILTER関数は、ワイルドカード(*や?)を単体で使うことはできません。
もし、部分一致で大文字・小文字・半角・全角を区別したい場合は、ISNUMBER関数とFIND関数を組み合わせます。
たとえば、A列のテキストの中から「PDF」という文字列を含むもの(大文字・小文字・全角・半角を区別して)の行だけを抽出したい場合は、次の数式を使います。
例:=FILTER(A2:A5,ISNUMBER(FIND("PDF",A2:A5)))
この数式では、FIND関数が「PDF」という文字列がテキスト内で最初に現れる位置を検索し、見つかれば数値を、見つからなければエラーを返します。
ISNUMBER関数は、FIND関数の結果が数値であればTRUEを、エラーであればFALSEを返すことで、FILTER関数の条件として{FALSE; FALSE;TRUE; FALSE}のような配列を渡しています。
FIND関数の引数:(検索文字列, 検索対象のテキスト, [開始位置])