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(lookup-value,lookup-array,match-type) (返回指定内容所在的位置)
INDEX(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函数 查找以下公司的 companyId | companyFullName | |:----| |
上海云贝网络科技有限公司 | | 携程计算机技术(上海)有限公司 | | 浙江康健绿线网络技术有限公司 | |
久亿财富(北京)投资有限公司 | | 杭州木瓜科技有限公司 | | 思特沃克软件技术(成都)有限公司 | |
北京金山云网络技术有限公司 |
如图:
例如我们要查找上海云贝网络科技有限公司
的CompanyId,公式就是
=VLOOKUP($B 6881 , 6881, 6881,B2:$C6877,2,0) 而如果要找下一行的携程计算机技术(上海)有限公司
的CompanyId的话,把第一行的行数改为6882即可,其他公司同样如此。
北京金山云网络技术有限公司
的id,第一个参数是E8,也就是所要查找的值的位置,然后再B列对E8的值进行配对,配对成功返回B列的行值。