Excel之match index 和vlookup函数 和双条件查找匹配

**vlookup函数用法

vlookup、hlookup、lookup函数的用法和三者的区别**

  • lookup的用法:
    lookup就是查找的意思,也是称模糊查找,下面会说,用法如例:

    如下图所示,=LOOKUP(B19,B2:B14,F2:F14) 的意思就是在B2:B14的范围内,查找内容等于B19的,如果找到,就复制对应的容量(从F2:F14中找对应的)出来
    Excel之match index 和vlookup函数 和双条件查找匹配_第1张图片
    结果:
    Excel之match index 和vlookup函数 和双条件查找匹配_第2张图片
    注意:LOOKUP要求查找的范围中,如上例的B2:B14(即电池条码列),必须是先排序的。如果没有规律,找出来的结果可能是不正确的。
    LOOKUP是模糊查找,上例中,如果B19是一个数字, 原始数据表是没有这个值的,那么结果会是最接近这个数字的数字,会找出这行对应的值作为结果。

  • vlookup用法:
    vlookup就是垂直查找(vertical lookup)的意思,也是称精准查找,下面会说,用法如例:

    与上例一样,查找人数:
    Excel之match index 和vlookup函数 和双条件查找匹配_第3张图片

    =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区域内查找 10A14的值,返回行值。

MATCH($B 13 , 13, 13,A 1 : 1: 1:D 1 , ) 是 在 1,)是在 1,)A 1 : 1: 1:D 1 区 域 内 查 找 1区域内查找 1B$13值,返回列值。

这样在$A 1 : 1: 1:D$10区域内的行列值有了,就可以返回对应的VALUE了。看下面的返回结果:

作业

(请下载提供的数据集《DataAnalyst》)链接:https://pan.baidu.com/s/1sCaFkQ9DoxYE-FyiY2ewPA 提取码:f55z

一、vlookup函数的应用

  • 用vlookup函数 查找以下公司的 companyId | companyFullName | |:----| |
    上海云贝网络科技有限公司 | | 携程计算机技术(上海)有限公司 | | 浙江康健绿线网络技术有限公司 | |
    久亿财富(北京)投资有限公司 | | 杭州木瓜科技有限公司 | | 思特沃克软件技术(成都)有限公司 | |
    北京金山云网络技术有限公司 |

    如图:
    Excel之match index 和vlookup函数 和双条件查找匹配_第4张图片
    例如我们要查找上海云贝网络科技有限公司的CompanyId,公式就是
    =VLOOKUP($B 6881 , 6881, 6881,B2:$C6877,2,0) 而如果要找下一行的携程计算机技术(上海)有限公司的CompanyId的话,把第一行的行数改为6882即可,其他公司同样如此。

二、用match和index函数实现第一题的功能

  • 据我们所知,match返回的是位置,index返回的是对应位置的内容,
    Excel之match index 和vlookup函数 和双条件查找匹配_第5张图片
    这里要注意的是INDEX的第一个参数是查找的值可能在的区域范围,这直接影响了INDEX的最后一个参数,最后一个参数是参照第一个参数进行改变的,加入第一个参数从上图中的,A:C变成B:C,那么我们就要将3改为2,因为我们要取C列的值。
    同时加深了Match函数的用法印象,上图公式查找的是北京金山云网络技术有限公司的id,第一个参数是E8,也就是所要查找的值的位置,然后再B列对E8的值进行配对,配对成功返回B列的行值。

三、用match和index函数查找以下id对应的公司名称,注意id是横向排列的| companyId | 127200 | 151079 | 22225 | |----|----|----|----|

Excel之match index 和vlookup函数 和双条件查找匹配_第6张图片

四、请根据companyId和postionId两个条件查找对应的工资水平| companyId | positionId | salary | |:----|:----|:----| | 62 | 938038 | | | 1575 | 1157620 | | | 157392 | 2574696 | |

  • 这道题完成不了。。。看了其他大神的做法:
  • Excel之match index 和vlookup函数 和双条件查找匹配_第7张图片
    请思考,是否会存在相同的公司id和职位di对应多种工资水平,如果有请查找出来。 并思考,如果存在多种的情况,目前的公式还能不能用?

你可能感兴趣的:(EXCEL)