excel中如何2个条件查一个结果?

内容提要:本文分享三种excel多条件查找函数方法,分别是:lookup多条件查询、vlookup多条件查找、indexmatch多条件查找,配套练习课件请到QQ群:下载。

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

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

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

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

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

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

在excel中如果两个单元格对比,相等则返回TRUE,在四则运算中用1表示。如果不相等则返回FALSE,使用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函数主要用于垂直方向上向右查找。如下图:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

在某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作表中查找值并返回第一个相匹配的值时,可以使用VLOOKUP函数吗?本文将解这个技术。

最简单的解决方案是在每个相关的工作表中使用辅助列,即首先将相关的单元格值连接并放置在辅助列中。然而,有时候我们可能不能在工作表中使用辅助列,特别是要求在被查找的表左侧插入列时。因此,本文会提供一种不使用辅助列的解决方案。

下面是3个示例工作表:

示例要求从这3个工作表中从左至右查找,返回Colour列中为“Red”对应的Amount列中的值,如下所示。

其中,Sheets是定义的名称:

在公式中使用的VLOOKUP函数与平常并没有什么不同,我们首先需要确定在哪个工作表中进行查找,因此我们使用的函数应该能够操作三维单元格区域,而COUNTIF函数就可以。公式中的:

INDIRECT函数指令Excel将这个文本字符串数组中的元素转换为单元格引用,然后传递给COUNTIF函数,同时单元格A3中的值作为其条件参数,这样上述公式转换成:

因为我们想得到第一个匹配的结果,所以将该数组传递给MATCH函数:

因此,将在工作表列表中的第2个工作表即Sheet2中执行VLOOKUP操作。

现在,将上面的结果作为参数值传递给INDEX函数:

这里,需要使用INDIRECT函数进一步构造来生成传递给VLOOKUP函数的单元格区域,因此:

}

我要回帖

更多关于 同时符合两个条件的查找 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信