当前位置:首页 > 综合 > 正文

别再问Vlookup了!试试index+match组合查询,比它好用太多了

常用函数的第五篇来了!这节我们来学习下index与match函数,相较于Vlookuph它更加灵活,功能也更加强大!下面我们就来学习下吧



一、index函数

Index函数:根据数据区域中的行列号返回区域中对应的值
语法:=INDEX(array, row_num, [column_num])
第一参数:数据区域第二参数:行标号的位置第三参数:列标号的位置
如果第一参数仅仅只有一行或者一列,我们就能省略对应的行列标号。
如需下图,我们想要找到武则天的数学成绩
公式:=INDEX(A1:D9,5,3)
在A1:D9这个数据区域中,第五行(武则天)与第三列(数学)它们的交叉处,就是我们需要的结果




二、match函数

语法:=MATCH(lookup_value, lookup_array, [match_type])
第一参数:查找值第二参数:查找的数据区域第三参数:匹配类型,在这里我们将其设置为0即可,表示精确匹配
如下图,我们想要查找【武则天】这姓名在第一列的位置
公式:=MATCH(F3,A1:A9,0)
结果为5,就表示在A1:A9这一列数据中,【武则天】是在第五个位置的

match函数是查找数据的位置,而index函数它是根据位置来返回对应的数据。所以我们只需要将match函数嵌套在match函数中就能达到数据查询的效果。下面来看下它都能解决哪些问题吧


三、常规查询

如下图,我们想要查找张飞的数学成绩
公式:=INDEX(D1:D9,MATCH(G3,A1:A9,0))
第一参数:D1:D9,需要返回的结果列第二参数:MATCH(G3,A1:A9,0),查找张飞在A列的位置第三参数:省略,因为在这里仅仅只有1列数据
这个案例是index+match最常见的使用方法,将第一参数设置为需要返回的结果列,就可以将第三参数省略掉,我们仅仅只需要使用mtach函数来确定数据的位置即可




四、反向查询

Index+match的反向查找与常规查询是一样的操作,它既可以查找右侧数据,也能查找左侧数据,非常灵活
如下图,我们想要查找3212这个学号对应的姓名
公式:=INDEX(A1:A9,MATCH(G3,B1:B9,0))




五、多条件查询

Index+match在进行数据查询的时候,如果遇到重复值也是仅仅只能返回第一个找到结果,这个时候我们就需要再增加一个条件让结果变得唯一。
如下图,我们想要找下【2班韩信】的英语成绩
公式:=INDEX(E2:E10,MATCH(H4&I4,B2:B10&C2:C10,0))
这个公式本质上还是一个index+match的常规查询的格式,关键是match函数的第一跟第二参数
第一参数:H4&I4,将班级跟姓名链接在了一起第二参数:B2:B10&C2:C10,将班级列跟姓名列链接在了一起
连接后,我们的查找值就变为了【2班韩信】这个值是唯一的,是可以找到对应的结果的




六、查找多行多列

index+match也是可以实现一次查找多行多列数据的,我们只需要在第一个单元格中输入公式,然后向下向右填充即可
公式:=INDEX($B$2:$H$11,MATCH($J3,$B$2:$B$11,0),MATCH(K$2,$B$2:$H$2,0))
第一参数:$B$2:$H$11,需要查找的数据区域第二参数:MATCH($J3,$B$2:$B$11,0),确定列标号第三参数:MATCH(K$2,$B$2:$H$2,0),确定行标号
现在第一参数是多列数据,所以我们只需要使用2次match函数找到对应的行列号即可

以上就是这一节的全部内容,其实关于index+match还有很多高阶的操作,只不过太难了,不建议大家学,现在新函数层数不穷,很多高阶的函数操作都已经被淘汰掉了,我的宗旨就是:什么简单学什么,怎么方便怎么来!
我是Excel从零到一,关注我,持续分享更多Excel技巧

你可能想看:

有话要说...

取消
扫码支持 支付码