[注意] 公式原文
=XLOOKUP(1,(A:A=G2)*(B:B=H2),C:C)[目标] 这个公式在做什么?
假设你有一张销售记录表:A列是“产品名称”,B列是“销售地区”,C列是“销售额”。现在你想根据“产品名称”和“销售地区”两个条件,同时匹配出对应的销售额——这条公式就是为此而生。
[详解] 逐行拆解(小白必看)
=XLOOKUP(:函数开头,告诉Excel“我要开始查找匹配数据了”。1,:查找值。当所有条件都满足时(即每个判断的结果都为TRUE),这些TRUE会被转换成数字1,公式就去找这个“1”。(A:A=G2):第一个条件。检查A列中每一个单元格,是否等于G2单元格中的“产品名称”。等于→返回TRUE;不等于→返回FALSE。*:乘号,表示“并且”。只有所有条件都为TRUE时,1×1=1;只要有一个条件不满足,0×1或1×0=0。(B:B=H2):第二个条件。检查B列中每一个单元格,是否等于H2单元格中的“销售地区”。原理同上。C:C,:返回范围。当找到匹配的行后,从C列(销售额列)中返回对应的数据。):公式结束。
[数据] 举例说明
假设你的数据表长这样:
| A列(产品) | B列(地区) | C列(销售额) |
|---|---|---|
| 手机 | 北京 | ¥12,000 |
| 平板 | 上海 | ¥8,500 |
| 手机 | 上海 | ¥15,000 |
| 电脑 | 北京 | ¥22,000 |
| 手机 | 北京 | ¥11,500 |
现在G2单元格填“手机”,H2单元格填“北京”。公式的执行逻辑如下:
- 第一个条件
A:A=G2(A列 = “手机”):第1行TRUE,第2行FALSE,第3行TRUE,第4行FALSE,第5行TRUE。 - 第二个条件
B:B=H2(B列 = “北京”):第1行TRUE,第2行FALSE,第3行FALSE,第4行TRUE,第5行TRUE。 - 两者相乘:第1行1×1=1,第2行0×0=0,第3行1×0=0,第4行0×1=0,第5行1×1=1。
- XLOOKUP查找1:从上往下扫描,第一个遇到1的是第1行,于是从C列返回对应值 ¥12,000。
[提示] 小贴士
- XLOOKUP默认只返回第一个匹配的结果。如果存在多个满足条件的记录,只返回最先找到的那一条。
- 如果改成
=XLOOKUP(1,(A:A=G2)*(B:B=H2),C:C,,,-1),则会从最后一行往前找,返回最后一条匹配的结果。 - XLOOKUP函数仅适用于Excel 2021及以上版本和Office 365用户。