返回上一页
办公技巧·Excel/WPS

XLOOKUP多条件查询逐行拆解

[注意] 公式原文

=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单元格填“北京”。公式的执行逻辑如下:

  1. 第一个条件 A:A=G2(A列 = “手机”):第1行TRUE,第2行FALSE,第3行TRUE,第4行FALSE,第5行TRUE。
  2. 第二个条件 B:B=H2(B列 = “北京”):第1行TRUE,第2行FALSE,第3行FALSE,第4行TRUE,第5行TRUE。
  3. 两者相乘:第1行1×1=1,第2行0×0=0,第3行1×0=0,第4行0×1=0,第5行1×1=1。
  4. XLOOKUP查找1:从上往下扫描,第一个遇到1的是第1行,于是从C列返回对应值 ¥12,000

[提示] 小贴士

  • XLOOKUP默认只返回第一个匹配的结果。如果存在多个满足条件的记录,只返回最先找到的那一条。
  • 如果改成 =XLOOKUP(1,(A:A=G2)*(B:B=H2),C:C,,,-1),则会从最后一行往前找,返回最后一条匹配的结果。
  • XLOOKUP函数仅适用于Excel 2021及以上版本和Office 365用户。