excel 多条件查找三种方法:lookup、vlookup、indexmatch 多条件查找案例

最近在Excel微信学习交流群中收到某位学员的问题咨询,问题是如何返回单据编号和物料长代码对应的含税数额。如下表:

 

其实这位学员的问题就是excel的多条件查找问题。

excel的多条件查找

 

下面通过一个实例跟大家分享一下常用的3种excel多条件查找函数。

下表是某电商公司的客户投诉表,现在需要通过A表中的客户姓名与地区两个条件来查询B表中的产品型号,返回到A表的E列中。

下面是三种excel双条件查找返回的方法,依次来看:

 

第一 excellookup多条件查询

excel多条件查找函数

函数公式:=LOOKUP(1,0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19),$K$3:$K$19)

公式解析:首先通过A3单元格与B表I列数据做对比,同时用B3单元格与B表J列信息做对比。

在excel中如果两个单元格对比,相等则返回TRUE,在四则运算中用1表示。如果不相等则返回FALSE,使用0表示。

 

那么(A3=$I$3:$I$19)*(B3=$J$3:$J$19)这部分运算的结果就只有0或者1两种情况,因为只有0*1、1*1、1*0这三种情况。

 

按照二分法原理,lookup函数会在二分位处查找符合条件的数据。大家都知道lookup函数想要精准查找那么这组数值必须要升序,但实际上这组数据运算结果0和1的顺序是混乱的。

 

所以就想到了用0来除以0和1的方式来区分。由于分母不能为0,所以0/0返回的是错误,0/1返回的结果为0。Lookup函数在查找的时候是忽略错误的,所以只有数据运算结果为1的公式满足条件。

 

那么我们就很好理解0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19)的目的就是将正确结果用0表示,其他的变成错误值,利用函数查找忽略错误这个特点完成查找。

 

总结:本函数由于使用了二分法原理查找,所以如果数据量较大时运算会很慢。

 

第二 vlookup多条件查找

 

vlookup函数是我们最常用的函数,vlookup函数主要用于垂直方向上向右查找。如下图:

excel多条件查找函数

使用G2单元格在A列中查找,如果查找到对应单元格则返回A列向右第二列的数据。简而言之:=VLOOKUP(查找什么,在哪查找,从条件所在列算起找到后返回对应的第几列数据,精确或模糊查找)。

 

那vlookup如何才能完成多条件查询呢?。

还以客户投诉表为例,按照姓名&地区来匹配产品型号返回到E里中。

其实我们是可以将A、B两表中插入辅助列,将姓名和地区都合并到一个单元格中然后使用vlookup来完成。

但是插入2个辅助列后整个表列数发生变动,在工作中往往单元格中有很多公式,如果列数发生变化将直接导致表格中函数公式运算结果错误。所以添加辅助列的方式虽然简单,但不是最好的方式。

 

那么不用辅助列如何才能完成多条件查询呢?

 

首先我们查找值合并很简单,输入函数vlookup时第一个参数可以写成A3&B3,即可将A3、B3两个单元格内容合并,作为查找值。

现在问题查找区域也需要做合并。

 

如果把两列内容合并在一起,可输入公式=H2:H19&I2:I19,按ctrl+shift+回车生成结果,然后下拉公式,这样两个条件就变成了一个。

接下来通过IF函数提取对应的J列数据,可输入公式=IF({0,1},H2:H19&I2:I19,J2:J19),按ctrl+shift+回车生成结果,然后下拉公式,{0,1}表示逻辑值{FALSE,TRUE}。

下面我们详细来解析一下:

首先在excel中0表示错误,1以及其他所有数值表示正确。如下表示例:

通过上面的例子我看到如果IF判断0则返回错误,判断1则返回正确。

现在我们可以将公式拆分为以下两种情况:

IF(0, H2:H19&I2:I19,J2:J19),0表示FALSE,所以只能返回J列数据。

IF(1, H2:H19&I2:I19,J2:J19),1表示TRUE,所以只能返回H列和I列合并结果。

那么IF({0,1},H2:H19&I2:I19,J2:J19)怎么理解呢?

既然是数组公式,那么可以将它理解为同时返回两组数据,0对应的是J2:J19,1对应的H2:H19&I2:I19,构建了两列数据。

最后我们使用vlookup函数完成嵌套,=VLOOKUP(A3&B3,IF({1,0},H3:H20&I3:I20,J3:J20),2,0),这里我们就可以理解为用A3&B3在H3:H20&I3:I20中查找对应J3:J20中的数据。因为公式中IF({1,0},H3:H20&I3:I20,J3:J20)返回的顺序是先返回H3:H20&I3:I20再返回J3:J20。

注意:很多人不明白为什么嵌套的时候IF第一参数又变成了{1,0},因为这里我们需要返回的是H和I合并结果作为查找区域。PS:所有数组公式完成输入后要使用数组三键ctrl+shift+ener来返回运算结果!

 

这样我们不用辅助列也能通过vlookup函数完成多条件查询。

 

第三 OFFSET+MATCH函数公式

很多excel高手都知道offset可以当vlookup函数使用,但职场新人大多都不了解。

下面举例跟大家分享一下通过offset函数完成多条件查询。

函数公式:{=OFFSET($J$2,MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0),)}

公式解析:

完成多条件查询第一步先要确定A表中姓名&地区合并后对应在B表中姓名&地区的顺序。这里我们通过MATCH来完成,我们用个简单的例子说明。

=MATCH(A2,E:E,0)表示使用A2单元格在E列中查找,0表示精确查找、1小于、-1大于,通常情况下都是精确查找。

MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0)表示将A3与B3合并作为查找内容,H列和I列合并作为查找区域,0表示精确查找。

 

确定顺序后我们通过OFFSET函数以顺序数据作为偏移行数返回对应数值。

OFFSET函数的功能是以指定的单元格引用为参照系,通过给定偏移量得到新的引用。

返回的引用可以为一个单元格区域。并可以指定返回的行数或列数。Reference 作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数 OFFSET 返回错误值#VALUE!。

=OFFSET(J2,1,0,1,1)表示以J2单元格作为参照物向下偏移1行,向右偏移0列,返回1行1列数据区域。

=OFFSET($J$2,MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0),)表示以$J$2为参照单元格,通过MATCH查找出来顺序作为向下偏移的行数,偏移列数量省略表示不偏移,第三个、第四个参数省略表示只返回一个单元格区域。

 

下面我们来总结一下本篇excel双条件查找返回的三种方式的利弊。LOOKUP函数使用过程中运算较慢;VLOOKUP函数使用IF({0,1})数组公式,理解上存在一定难度;OFFSET+MATCH函数公式简单,可以作为首选方案。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Excel中,我们可以使用多条件查找函数VLOOKUP查找满足多个条件的数据。 VLOOKUP函数包含了四个参数,分别是要查找的值、查找范围、索引列号和匹配方式。 首先,在一个表格中有多个条件,比如在A列是员工姓名,在B列是员工部门,在C列是员工工资。我们想要查找姓名为“张三”且部门为“销售部”的员工的工资。 首先,我们需要在一个单元格中输入以下公式: =VLOOKUP("张三",A1:C10,3,0) 其中,“张三”为要查找的值,A1:C10为要查找的范围,3是指要返回的值在范围中的位置,而0表示精确匹配。 接下来,我们可以将这个公式拖动到其他单元格中以查找其他符合条件的数据。如果找不到符合条件的数据,函数将返回#N/A。 总之,利用VLOOKUP函数可以在Excel中进行多条件查找,帮助我们快速准确地定位所需数据。 ### 回答2: 在Excel中,我们可以使用多个条件进行查找,其中一种常见的方法是使用VLOOKUP函数来实现。 VLOOKUP函数Excel中非常有用的函数之一,它用于在表格中按照给定的条件进行查找,并返回相应的值。 要使用VLOOKUP函数进行多条件查找,可以借助其他函数将多个条件合并为一个单一的条件,例如使用CONCATENATE函数或者&符号将多个条件字符串连接在一起。在VLOOKUP函数中,将这个合并后的条件作为查找值参数即可。 举个例子,假设我们有一个包含产品名称和产品价格的表格,我们想要根据产品名称和产品类型查找对应的价格。我们可以首先使用CONCATENATE函数(或者&符号)将这两个条件合并为一个条件,然后将这个条件作为VLOOKUP函数查找值参数。 具体的VLOOKUP函数的公式如下: =VLOOKUP(CONCATENATE(A2,B2), 数据区域, 列索引, FALSE) 其中,A2和B2分别表示产品名称和产品类型的单元格,数据区域表示要进行查找的表格范围,列索引表示要返回的值在数据区域中的列位置,FALSE表示查找时要精确匹配。 这样,我们就可以根据多个条件进行查找,并返回相应的值了。 需要注意的是,使用VLOOKUP函数进行多条件查找时,要确保数据区域的范围是包含并且有序的,且查找值参数和数据区域中的值类型要一致,否则可能会导致查找失败。另外,VLOOKUP函数只能按照从左到右的顺序进行查找,如果有多个条件,要注意条件的排序。 ### 回答3: 在Excel中,我们可以使用VLOOKUP函数来进行多条件查找VLOOKUP函数的基本语法为:VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) 其中,lookup_value表示要查找的值;table_array表示要查找的区域;col_index_num表示要返回的数据所在的列;[range_lookup]表示是否要精确匹配。 要实现多条件查找,可以通过在table_array中设置多个列,然后使用组合函数来进行筛选。 假设我们有一个表格,其中一列是产品名称,另一列是产品价格,再一列是产品数量。现在要根据产品名称和数量来查找对应的价格。 首先,我们需要将查找条件放在另外的单元格中,例如A1和A2分别填写产品名称和数量。 然后,我们可以在VLOOKUP函数中设置多个条件,如VLOOKUP(A1&B1, table_array, col_index_num, [range_lookup])。 其中,A1&B1表示将产品名称和数量进行合并;table_array选择的区域是包含产品名称、价格和数量的所有列;col_index_num表示返回的数据在该区域的位置;[range_lookup]可以选择是精确匹配还是近似匹配。 这样,我们就可以根据多个条件Excel表格中进行查找了。 需要注意的是,当我们使用多条件查找时,要确保table_array的列顺序与VLOOKUP函数中的条件顺序一致,否则可能会出现查找错误的情况。 通过以上的方法,我们可以在Excel中利用VLOOKUP函数实现多条件查找

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值