Excel的双条件多条件查找

Excel的双条件多条件查找


2024年5月30日发(作者:)

Excel的双条件多条件查找

VLOOKUP函数一般情况下,只能实现单条件查找。

如果想通过VLOOKUP函数来实现双条件或多条件的查找并返回值,那么,只需要加

上IF({1,0}就可以实现。

下面,我们就一起来看看IF({1,0}和VLOOKUP函数的经典结合使用例子吧。

我们要实现的功能是,根据Sheet1中的产品类型和头数,找到Sheet2中相对应的

产品类型和头数,并获取对应的价格,然后自动填充到Sheet1的C列。实现此功能,就

涉及到两个条件了,两个条件都必须同时满足。

如下图,是Sheet1表的数据,三列分别存放的是产品类型、头数和价格。

上图是一张购买产品的表,其中,购买产品的行数据,可能存在重复。如上图的三七

头,就是重复数据。

1

现在,我们再来看第二张表Sheet2。

上表,是固定好的不存在任何重复数据的产品单价表。因为每种三七头对应的头数是

不相同的,如果要找三七头的单价,那么,要求类型是三七头,同时还要对应于头数,这

就是条件。

现在,我们在Sheet1中的A列输入三七头,在B列输入头数,然后,利用公式自动

从Sheet2中获取相对应的价格。这样就免去了输入的麻烦。

公式比较复杂,因为难于理解,先看下图吧,是公式的应用实例。

2

C2的公式为:

{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2

:$C$12),2,FALSE)}

公式解释:

①VLOOKUP的解释

VLOOKUP函数,使用中文描述语法,可以这样来理解。

VLOOKUP(查找值,在哪里找,找到了返回第几列的数据,逻辑值),其中,逻辑值为

True或False。

再对比如上的公式,我们不能发现。

A2&B2相当于要查找的值。等同于A2和B2两个内容连接起来所构成的结果。所以

为A2&B2,理解为A2合上B2的意思。

3

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相当于要

查找的数据

=VLOOKUP(A9&B9&C9,IF({1,0},个人检查记录明细!$A$7:$A$225&个人检查记录

明细!$B$7:$B$225&个人检查记录明细!$C$7:$C225,个人检查记录明

细!$D$7:$D$225),2,0)

2代表返回第二列的数据。最后一个是False。

②IF({1,0}的解释

刚才我们说了,

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相当于

VLOOKUP函数中的查找数据的范围。

由于本例子的功能是,根据Sheet1中的A列数据和B列数据,两个条件,去Sheet2

中查找首先找到对应的AB两列的数据,如果一致,就返回C列的单价。

因此,数据查找范围也必须是Sheet2中的AB两列,这样才能被找到,由于查找数

据的条件是A2&B2两个单元格的内容,但是此二单元格又是独立的,因此,要想构造查

找范围,也必须把Sheet2中的AB两列结合起来,那就构成了

Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12;

Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12:相当于AB两列数据组成一列数据。

那么,前面的IF({1,0}代表什么意思呢?

4

IF({1,0},相当于IF({True,False},用来构造查找范围的数据的。最后的

Sheet2!$C$2:$C$12也是数据范围。

现在,整个IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)

区域,就形成了一个数组,里面存放两列数据。

第一列是Sheet2AB两列数据的结合,第二列数据是Sheet2!$C$2:$C$12。

公式

{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2

:$C$12),2,FALSE)}中的数字2,代表的是返回数据区域中的第二列数据。结果刚好就是

Sheet2的C列,即第三列。因为在IF({1,0}公式中,Sheet2中的AB两列,已经被合并成

为一列了,所以,Sheet2中的第三列C列,自然就成为序列2的列编号了,所以,完整的

公式中,红色的2代表的就是要返回第几列的数据。

上面的完整的公式,我们可以使用如下两种公式来替代:

=VLOOKUP(A2&B2,CHOOSE({1,2},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,S

heet2!$C$2:$C$12),2,FALSE)

=VLOOKUP(A2&B2,IF({TRUE,FALSE},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,

Sheet2!$C$2:$C$12),2,FALSE)

关于Choose函数的使用示例

CHOOSE函数语法

5

函数功能:可以根据给定的索引值,从多达29个待选参数中选出相应的值。

函数语法:CHOOSE(index_num,value1,value2,...)。

参数介绍:

Index_num是用来指明待选参数序号的值,它必须是1到29之间的数字、或者是包

含数字1到29的公式或单元格引用;

Value1,value2,...为1到29个数值参数,可以是数字、单元格,已定义的名称、

公式、函数或文本。

实例1:公式“=CHOOSE(2,"大众","计算机") 返回“计算机”。因为参数2代

表要返回第二个值,也就是“计算机”。

公式“=SUM(A1:CHOOSE(3,A10,A20,A30))”与公式“=SUM(A1:A30)”等价

(因为CHOOSE(3,A10,A20,A30)返回A30)。

实例2:SUM(Choose(2,A1:A20,B3:B15))与SUM(B3:B15)等价。

再仔细看看一个实例:

公式:=Choose(要哪个,"第一个","第二个","第三个","第四个","第五个")

上述的值中,共有五个,想要哪个就在参数一那里填写序号,比如,想要第四个,那

么,就这样来填写:

6

=Choose(4,"第一个","第二个","第三个","第四个","第五个")

注意哦,“要哪个”这个数字,必须在[1,29]这个范围;并且,值列表的个数,也必

须在在[1,29]这个范围。

7


发布者:admin,转转请注明出处:http://www.yc00.com/web/1717019312a2732866.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信