区分大小写的查找:Excel 与 Google Sheets
XLOOKUP、MATCH 和 COUNTIF 在本次测试中不区分大小写。列表里同时有 SKU-103(价格 0.55)和 sku-103(价格 9.99)。XLOOKUP("sku-103") 与 XLOOKUP("SKU-103") 都返回 0.55,也就是第一行。COUNTIF 把两种写法都算上,结果为 2。MATCH("sku-103") 指向第 1 行。
本文目录
快速解答
XLOOKUP、MATCH 和 COUNTIF 在本次测试中不区分大小写。列表里同时有 SKU-103(价格 0.55)和 sku-103(价格 9.99)。XLOOKUP("sku-103") 与 XLOOKUP("SKU-103") 都返回 0.55,也就是第一行。COUNTIF 把两种写法都算上,结果为 2。MATCH("sku-103") 指向第 1 行。
SKU-103 0.55
sku-103 9.99
SKU-110 4.1检查要点
要区分大小写,用 FILTER 配合 EXACT。EXACT("sku-103",A2) 为 FALSE,EXACT("sku-103",A3) 为 TRUE。FILTER 加 EXACT 对小写键返回 9.99,对大写键返回 0.55。本文件中 FILTER 不必套 ARRAYFORMULA。
边界与兼容性
从末尾匹配的 XLOOKUP 返回 9.99,那是最后一个不区分大小写的匹配,并不是函数突然改成区分大小写。若两种大小写应视为同一 SKU,默认的 XLOOKUP 即可;只有它们代表不同记录时才需要 EXACT。
完整英文示例、公式与作者备注
Excel How-toWhich versions this applies to
The results below were measured in Google Sheets on November 12, 2026. EXACT, FILTER, XLOOKUP, MATCH, and COUNTIF exist in current Excel according to Microsoft; XLOOKUP and FILTER are not in Excel 2016 or 2019. I did not re-test this list in desktop Excel today. In this Sheets file, FILTER(B2:B4,EXACT(A2:A4,"sku-103")) spilled without ARRAYFORMULA.
The list I used
SKU-103 0.55
sku-103 9.99
SKU-110 4.1
Those first two rows are not the same product if your catalog is case-sensitive. They are the same product if you are using XLOOKUP the usual way.
XLOOKUP, MATCH, and COUNTIF ignore case
=XLOOKUP("sku-103",A2:A4,B2:B4,"missing") → 0.55
=XLOOKUP("SKU-103",A2:A4,B2:B4,"missing") → 0.55
=MATCH("sku-103",A2:A4,0) → 1
=COUNTIF(A2:A4,"sku-103") → 2
=XLOOKUP("sku-103",A2:A4,B2:B4,"missing",0,-1) → 9.99
Both XLOOKUP calls returned the first row’s price, 0.55, regardless of how I capitalized the lookup value. MATCH pointed at row 1 (SKU-103). COUNTIF counted both SKU rows as hits. The last-match XLOOKUP (search_mode -1) returned 9.99 because the lowercase row is the last case-insensitive hit, not because XLOOKUP suddenly became case-sensitive.
If your sheet only ever has one casing, you will not notice. If both casings can appear, you will get the first one XLOOKUP sees, which may be the wrong price.
FILTER plus EXACT is case-sensitive
EXACT was the function that distinguished the two rows:
=EXACT("sku-103",A2) → FALSE (A2 is SKU-103)
=EXACT("sku-103",A3) → TRUE (A3 is sku-103)
=FILTER(B2:B4,EXACT(A2:A4,"sku-103")) → 9.99
=FILTER(B2:B4,EXACT(A2:A4,"SKU-103")) → 0.55
FILTER with EXACT returned only the price that belonged to that exact casing. I did not wrap it in ARRAYFORMULA; the formula spilled on its own in this file.
Microsoft documents EXACT as a case-sensitive comparison in Excel as well. I did not re-run this FILTER in desktop Excel today.
For a yes/no check on a single pair of cells, EXACT is enough. For a lookup down a column, put EXACT inside FILTER (or in a helper column that you then look up). I did not test an XLOOKUP of a helper column in this run; the FILTER form is the one I actually got 9.99 and 0.55 from.
Excel and Google Sheets differences
XLOOKUP and COUNTIF are documented by Microsoft as not case-sensitive. That matches this Sheets file. EXACT is documented as case-sensitive. Current Excel can use FILTER with EXACT; older Excel would need a helper column and INDEX/MATCH, which I did not test here. FIND is also case-sensitive, but it searches inside text rather than looking up a key; see FIND vs SEARCH.
Common mistakes
- Trusting
XLOOKUP("sku-103",...)to missSKU-103. It returned0.55, the first row. - Using
COUNTIFto see whether a case-sensitive duplicate exists. It counted both casings and returned2. - Assuming a last-match
XLOOKUPis case-sensitive because it returned9.99. That was the last case-insensitive hit in the list. - Forgetting that
EXACTis the check that actually returnedFALSEonSKU-103vssku-103.
FAQ
How do I do a case-sensitive lookup in Google Sheets?
=FILTER(B2:B4,EXACT(A2:A4,"sku-103")) returned 9.99 from this list, and the uppercase lookup returned 0.55. XLOOKUP on its own did not distinguish them.
Why did XLOOKUP return the uppercase row when I searched for sku-103?
Because it is not case-sensitive here. Both "sku-103" and "SKU-103" returned 0.55, the first row.
Is COUNTIF case-sensitive?
Not in this test. COUNTIF(A2:A4,"sku-103") was 2, one for each casing.
Does this work in Excel 2016?
EXACT does. FILTER and XLOOKUP do not, according to Microsoft. I did not build an Excel 2016 helper-column version as part of this test.
What if both casings should be treated as the same SKU?
Then the default XLOOKUP behavior is what you want. The risk is only when the two strings are supposed to mean different things, as 0.55 and 9.99 did here.
Related tutorials
- XLOOKUP vs INDEX MATCH vs VLOOKUP: Which Should You Use in 2026?
- Compare Two Columns in Excel and Google Sheets and Find Missing Values
- FIND vs SEARCH in Excel and Google Sheets
- Excel & Google Sheets Lookup Errors: The Complete Troubleshooting Guide
Live-test findings
Google Sheets, November 12, 2026. List: SKU-103/0.55, sku-103/9.99, SKU-110/4.1. XLOOKUP of either casing returned 0.55. MATCH("sku-103",...) returned 1. COUNTIF returned 2. Last-match XLOOKUP returned 9.99. EXACT("sku-103",A2) was FALSE, EXACT("sku-103",A3) was TRUE. FILTER+EXACT returned 9.99 for the lowercase key and 0.55 for the uppercase key.
Sources
- Microsoft Support: EXACT function: https://support.microsoft.com/en-us/office/exact-function-d3087698-fc15-4a15-9631-12575cf29926
- Microsoft Support: XLOOKUP function: https://support.microsoft.com/en-us/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929
- Microsoft Support: FILTER function: https://support.microsoft.com/en-us/office/filter-function-f4f7cb66-82eb-4767-8f7c-4877ad80c759
- Microsoft Support: COUNTIF function: https://support.microsoft.com/en-us/office/countif-function-e0de10c6-f885-4e71-abb4-1f464816df34
- Google Docs Editors Help: EXACT: https://support.google.com/docs/answer/3094073
- Google Docs Editors Help: FILTER: https://support.google.com/docs/answer/3093197