区分大小写的查找: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。

完整英文示例、公式与作者备注

Which 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 miss SKU-103. It returned 0.55, the first row.
  • Using COUNTIF to see whether a case-sensitive duplicate exists. It counted both casings and returned 2.
  • Assuming a last-match XLOOKUP is case-sensitive because it returned 9.99. That was the last case-insensitive hit in the list.
  • Forgetting that EXACT is the check that actually returned FALSE on SKU-103 vs sku-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.

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

Oscar

专注电子表格公式与排错;具体测试环境和待验证事项见各篇文章。

Tested in Google Sheets, November 12, 2026. Excel version notes follow Microsoft documentation and were not re-tested in a desktop Excel workbook on this date..

本主题下一篇:查找与条件求和 Excel 数据透视表无法按日期组合