#VLOOKUP中的查找条件#lookup_value参数如何设vlookup两个条件查找?

2017-10-09 06:52
来源:
Excel完美在线学习
双条件查找的6种方法
大家好,今天和大家分享“双条件查找的6种方法”,根据产品名称和规格查找销量
一、解法1:Sumprodutct实现
2、公式
=SUMPRODUCT((A2:A10=E2)*(B2:B10=F2)*(C2:C10))
同是满足产品名称是A,规格是小号,然后再和销量相乘
满足条件显示销量,不满足条件显示0,然后用sumproduct求和
当然这里也可以用Max替代sumproduct得到公式=MAX((A2:A10=E2)*(B2:B10=F2)*(C2:C10)),不过这个就是数组公式
也可变换一个思路用if判断前面两个条件,如果成立返回销量,不成立返回False,Fasle大于任意数字,然后Min提取最小值,得到公式=MIN(IF((A2:A10=E2)*(B2:B10=F2),C2:C10)),也是数组公式
二、解法2:Lookup实现
2、公式
=LOOKUP(1,0/((A2:A10=E2)*(B2:B10=F2)),C2:C10)
这是lookup一个常用套路=lookup(1,0/((条件1区域=条件1)*(条件2区域=条件2)),(返回的结果区域))
第2参数0/((A2:A10=E2)*(B2:B10=F2)),两个条件同时满足就返回1,不满足就返回0,0/0报错,0/1=0
根据lookup这条规则,如果查找值大于第2参数最大的值,那么就定位到最后一个数据位置,返回第3参数定位的这个位置
三、解法3:Index+Match实现
1、公式截图
2、公式
=INDEX(C1:C10,MATCH(E2&F2,A1:A10&B1:B10,0))
3、公式解释
Index函数这里用了2个参数,因为第1参数是一列纵向的一维引用
Match作index的第2参数
Match函数3个参数,用它来定位返回销量那一行
Match这里巧妙把两个条件用&连接起来,就变成了一个条件,MATCH(E2&F2,A1:A10&B1:B10,0)
四、解法4:Vlookup+Choose实现
1、公式截图
2、公式
=VLOOKUP(E2&F2,CHOOSE({1,2},A1:A10&B1:B10,C1:C10),2,0)
3、公式解释
这里也是巧妙用&把两个条件变成了一个条件
vlookup函数第2参数通过choose把3列变成了2列,也是为了把两个条件变成一个条件
choose函数参数不确定,第1参数是索引编号;第2参数开始编号为1;第3参数编号为2;第4参数编号为3;依此类推
=choose(1,"A","B","C")返回“A"
=choose(3,"A","B","C")返回“C"
=choose({1,2},"A","B","C")返回{"A","B"}
五、解法5:Sumifs实现
2、公式
=SUMIFS(C:C,A:A,E2,B:B,F2)
3、公式解释
六、解法6:Dsum函数实现
1、公式截图
2、公式
=DSUM(A:C,3,E1:F2)
3、公式解释
如果大家觉得我们的文章学到东西,记得帮老师此文章分享到你们的朋友圈 ,或者告诉你的朋友关注我们的公众号。我们的公众号:vba18664243619,谢谢大家
七、近10期文章:大家可以用手指点击就可以查找看了,如果觉得不错,记得分享到你的朋友圈 返回搜狐,查看更多
责任编辑:}
**vlookup函数用法vlookup、hlookup、lookup函数的用法和三者的区别** lookup的用法:lookup就是查找的意思,也是称模糊查找,下面会说,用法如例: 如下图所示,=LOOKUP(B19,B2:B14,F2:F14) 的意思就是在B2:B14的范围内,查找内容等于B19的,如果找到,就复制对应的容量(从F2:F14中找对应的)出来结果:注意:LOOKUP要求查找的范围中,如上例的B2:B14(即电池条码列),必须是先排序的。如果没有规律,找出来的结果可能是不正确的。LOOKUP是模糊查找,上例中,如果B19是一个数字, 原始数据表是没有这个值的,那么结果会是最接近这个数字的数字,会找出这行对应的值作为结果。
vlookup用法:vlookup就是垂直查找(vertical lookup)的意思,也是称精准查找,下面会说,用法如例: 与上例一样,查找人数: =VLOOKUP(B19,B2:Q14,5,FALSE)
可以观察到,查找范围从一列变成了多列,即从B列到Q列,从2行到14行,第三个参数5代表的是取所取范围内的第五列,第四个参数FALSE代表精准查找。 实际应用中,vlookup比较多用。
hlookup的用法与vlookup类似,vlookup是横向查找(Horizontal lookup),如果将上述的公司从列变成行,那么我们就要用hlookup进行查找。 match和index的使用MATCH(lookup-value,lookup-array,match-type) (返回指定内容所在的位置)lookup-value:表示要在区域或数组中查找的值,可以是直接输入的数组或单元格引用lookup-array:表示可能包含所要查找的数值的连续单元格区域,应为数组或数组引用match-type:表示查找方式,用于指定精确查找(查找区域无序排列)或模糊查找(查找区域升序排列)。取值为-1、1、0 。其中0为精确查找INDEX(array,row-num,column-num) (返回制定位置中的内容)array:要返回值的单元格区域或数组row-num:返回值所在的行号column-num:返回值所在的列号所以可以将match函数和index函数配合使用。例如:如果要获取某人的1,3月的出勤数,怎么用index配合match来查找呢?以B14为例公式讲解:=INDEX($A
1
:
1:
1:D
10
,
M
A
T
C
H
(
10,MATCH(
10,MATCH(A14,$A
1
:
1:
1:A
10
,
)
,
M
A
T
C
H
(
10,),MATCH(
10,),MATCH(B
13
,
13,
13,A
1
:
1:
1:D$1,))$A
1
:
1:
1:D$10是指数值的区域范围;MATCH(
A
14
,
A14,
A14,A
1
:
1:
1:A
10
,
)


10,)是在
10,)是在A
1
:
1:
1:A
10





10区域内查找
10区域内查找A14的值,返回行值。MATCH($B
13
,
13,
13,A
1
:
1:
1:D
1
,
)


1,)是在
1,)是在A
1
:
1:
1:D
1





1区域内查找
1区域内查找B$13值,返回列值。这样在$A
1
:
1:
1:D$10区域内的行列值有了,就可以返回对应的VALUE了。看下面的返回结果:作业(请下载提供的数据集《DataAnalyst》)链接:https://pan.baidu.com/s/1sCaFkQ9DoxYE-FyiY2ewPA 提取码:f55z一、vlookup函数的应用 用vlookup函数 查找以下公司的 companyId
companyFullName
:----
上海云贝网络科技有限公司
携程计算机技术(上海)有限公司
浙江康健绿线网络技术有限公司
久亿财富(北京)投资有限公司
杭州木瓜科技有限公司
思特沃克软件技术(成都)有限公司
北京金山云网络技术有限公司
如图:例如我们要查找上海云贝网络科技有限公司的CompanyId,公式就是 =VLOOKUP($B
6881
,
6881,
6881,B2:$C6877,2,0) 而如果要找下一行的携程计算机技术(上海)有限公司的CompanyId的话,把第一行的行数改为6882即可,其他公司同样如此。 二、用match和index函数实现第一题的功能据我们所知,match返回的是位置,index返回的是对应位置的内容,这里要注意的是INDEX的第一个参数是查找的值可能在的区域范围,这直接影响了INDEX的最后一个参数,最后一个参数是参照第一个参数进行改变的,加入第一个参数从上图中的,A:C变成B:C,那么我们就要将3改为2,因为我们要取C列的值。同时加深了Match函数的用法印象,上图公式查找的是北京金山云网络技术有限公司的id,第一个参数是E8,也就是所要查找的值的位置,然后再B列对E8的值进行配对,配对成功返回B列的行值。三、用match和index函数查找以下id对应的公司名称,注意id是横向排列的
companyId
127200
151079
22225
----|----|----|----|四、请根据companyId和postionId两个条件查找对应的工资水平
companyId
positionId
salary
:----|:----|:----
62
938038
1575
1157620
157392
2574696
这道题完成不了。。。看了其他大神的做法:请思考,是否会存在相同的公司id和职位di对应多种工资水平,如果有请查找出来。 并思考,如果存在多种的情况,目前的公式还能不能用?}

我要回帖

更多关于 vlookup两个条件查找 的文章

更多推荐

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

点击添加站长微信