通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找

转载 2015年07月07日 23:00:58

在Excel中,通过VLOOKUP函数可以查找到数据并返回数据。不仅能跨表查找,同时,更能跨工作薄查找。

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

  如果想通过VLOOKUP函数来实现双条件或多条件的查找并返回值,那么,只需要加上IF({1,0}就可以实现。

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

  我们要实现的功能是,根据Sheet1中的产品类型和头数,找到Sheet2中相对应的产品类型和头数,并获取对应的价格,然后自动填充到Sheet1的C列。实现此功能,就涉及到两个条件了,两个条件都必须同时满足。

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

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

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

  上表,是固定好的不存在任何重复数据的产品单价表。因为每种三七头对应的头数是不相同的,如果要找三七头的单价,那么,要求类型是三七头,同时还要对应于头数,这就是条件。

  现在,我们在Sheet1中的A列输入三七头,在B列输入头数,然后,利用公式自动从Sheet2中获取相对应的价格。这样就免去了输入的麻烦。

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

  下面,将给大家大体介绍公式是如何理解的。比如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(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE) 之后,再按新Ctrl+Shift+Enter组合键,才会出现大括号。大括号是通过组合键按出的,不是通过键盘输入的。

  公式解释:

  ①VLOOKUP的解释

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

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

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

  A2&B2相当于要查找的值。等同于A2和B2两个内容连接起来所构成的结果。所以为A2&B2,理解为A2合上B2的意思。

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

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

  关于VLOOKUP函数的单条件查找的简单应用,您可以参阅文章:http://www.dzwebs.net/3035.html

  ②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}代表什么意思呢?

  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,Sheet2!$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函数的使用示例,您可以参阅此文:http://www.dzwebs.net/3114.html

相关文章推荐

通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找

在Excel中,通过VLOOKUP函数可以查找到数据并返回数据。不仅能跨表查找,同时,更能跨工作薄查找。   但是,VLOOKUP函数一般情况下,只能实现单条件查找。   如果想通过VLOOKUP...

Excel中利用VLOOKUP进行逆向查找(亲自实践)

逆向查找:如果是想 从B列搜索,返回A列值,则属逆向查找   解决方法:人为地把B列放到首列位置 比如:VLOOKUP(lookup_value,IF({1,0},B:B,A:A),2,)或VL...

在excel中用VLOOKUP函数应注意的一个问题

作者:iamlaosong 同事在用VLOOKUP函数时碰到一个问题,就是明明两个字符串相同,但查找的结果却是#N/A,比较的字符串都是数字号码,经检查,发现两个表中相应字符串的类型不同。 excel...

Excel查找函数--Vlookup(多条件匹配)

方法一:使用辅助列 只要在目标区域的首列添加一个辅助列,目的就是将多条件转化为一个单条件,这个时候我们就可以用Vlookup进行匹配了,请看下面的示例: 1、在A列前插入一空列,输入公式=B2...

Excel查找函数--Vlookup(单条件匹配)

一、Vlookup介绍 Vlookup就是竖直查找,即列查找。 通俗的讲,根据查找值参数,在查找范围的第一列搜索查找值,找到该值后,则返回值为:以第一列为准,往后推数查找列数值的这一列所对应的值。 ...

实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字(for、while、if、else、switch、case)。

解法1:利用递归(&&的短路特性)&&的短路特性:即A&&B中,加入A为假,那么B就不会被运算,因此我们只要将递归放在B中,而将终止条件放在A中即可解决该问题。。。 1 /*************...

Excel 某单元格查找在某列中是否存在,存在就插入或拷贝值到指定单元格 VLOOKUP IF嵌套用法

=VLOOKUP(IF(LEN(D3) 是否可以看懂上面的公式?如果看的懂以下文字看也是白看了 现在有一个问题是要从在,表:公司36396中查出“用户名称”与“用户编号”拷贝到,表:Sheet1中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找
举报原因:
原因补充:

(最多只允许输入30个字)