
GoogleスプレッドシートのXLOOKUP関数は、「大文字と小文字」、「全角と半角」を区別しません。「Apple・apple・apple」を区別して検索したい場合、他の関数と組み合わせる必要があります。この記事では、XLOOKUP関数を使って大文字と小文字を区別する方法から、部分一致の検索まで詳しく解説します。
XLOOKUP関数の基本(おさらい)

XLOOKUP関数は「検索範囲」から「検索キー」を探し、「結果の範囲」から対応する値を返します。
たとえば、A列のテキストの中から「pdf」という文字列を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。
例:=XLOOKUP("pdf",A2:A4,B2:B4)
💡ポイント:XLOOKUP関数は「大文字と小文字」、「全角と半角」を区別しません。 そのため、「PDF・pdf・pDf」のどれがA列にあっても、最初に見つかったものに対応する値を返します。
XLOOKUP関数の引数:(検索キー, 検索範囲, 結果の範囲, [見つからない場合の値], [一致モード], [検索モード])
XLOOKUP関数で厳密な検索をする

大文字・小文字・半角・全角を区別して検索したい場合は、EXACT関数を組み合わせます。
たとえば、A列のテキストの中から「pdf」と完全に一致する文字列を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。
例:=ArrayFormula(XLOOKUP(TRUE,EXACT(A2:A4,"pdf"),B2:B4))
EXACT関数の引数:(文字列1, 文字列2)
【数式の解説】
- EXACT関数で2つの文字列が同一であるかを検証し、その結果を
{FALSE; TRUE; FALSE}のような配列で、XLOOKUP関数の検索範囲として渡しています。 - EXACT関数のように配列を返す関数を別の関数の引数として使う場合、
[Ctrl] + [Shift] + [Enter]で先頭にArrayFormula関数を追加します。
XLOOKUPで部分一致を厳密に検索する

XLOOKUP関数は、ワイルドカード(*や?)を使って部分一致を検索できますが、その場合も大文字・小文字・半角・全角を区別しません。
もし、部分一致でこれらを区別したい場合は、REGEXMATCH関数を組み合わせます。
たとえば、A列のテキストの中から「pdf」という文字列を含むもの(大文字・小文字を区別して)を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。
例:=ArrayFormula(XLOOKUP(TRUE,REGEXMATCH(A2:A4,"pdf"),B2:B4))
REGEXMATCH関数の引数:(テキスト, 正規表現)
【数式の解説】
- REGEXMATCH関数が各セルの文字列が指定の正規表現(この場合は「
pdfを含む」)にマッチするかを判定し、{FALSE; TRUE; FALSE}のような配列で、XLOOKUP関数の検索範囲として渡しています。 - その他の便利な正規表現の例
- 〜で始まる:
"^pdf" - 〜で終わる:
"pdf$" - 〜を含まない:
NOT(REGEXMATCH(A2:A4,"pdf"))
- 〜で始まる: