龙空技术网

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

Excel从零到一 21416

前言:

目前同学们对“index两个条件匹配”大致比较讲究,看官们都想要学习一些“index两个条件匹配”的相关文章。那么小编也在网络上汇集了一些有关“index两个条件匹配””的相关内容,希望我们能喜欢,朋友们快快来学习一下吧!

常用函数的第五篇来了!这节我们来学习下index与match函数,这个组合相信很多人都用过,很多喜欢将index+match与Vlookup进行比较,我觉得他们各有优点,但是如果非要选择一个话,我会选择 index+match因为它更加灵活,功能也更加强大!下面我们就来学习下吧

一、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技巧

以上内容在我的专栏中都有讲到

如果你想要学习Excel,提高工作效率

这里↓↓↓

标签: #index两个条件匹配