百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

INDEX+MATCH函数一组合,赛过VLOOKUP函数

yund56 2025-07-02 10:25 4 浏览

提到查询数据,首先想到的就是VLOOKUP函数。但VLOOKUP查询有两个不便之处:

1、查找值(第一个参数)始终位于查找区域(第二个参数)的第一列;

2、从左向右查找容易,但从右向左查找需要IF或CHOOSE构建新的查找区域。

如例所示:右侧表格里需要根据姓名查找工号,而左侧表格里工号在第一列,姓名在第二列,使用标准的VLOOKUP函数显示查询不了,在不动查询表格的次序的前提下,只能使用VLOOKUP函数和IF函数组合,通过IF{1,0}重新构建一个新的数组,重新排列了姓名和工号,让姓名移动到了第一列,工号移动到了第二列。

很多人,很不好理解这个函数的意思,那么我们今天就来看下另一组函数的组合:INDEX+MATCH。

先来了解下【MATCH函数】

MATCH函数查找指定项在单元格区域中的相对位置,即第几行第几列。

语法:MATCH(lookup_value,lookup_array, [match_type])

中文语法:MATCH(指定项,单元格区域,[匹配方式])

match_type,即匹配方式,参数有三个:

  • -1,查找小于或等于 lookup_value的最大值;
  • 0,查找等于 lookup_value的第一个值;
  • 1,查找大于或等于 lookup_value的最小值。

如图所示,查找姓名吕布在姓名列的位置,使用函数公式:=MATCH(H2,B2:B10,0)

这个公式相对好理解,也就是H2单元格里的名字在B2:B10即姓名列中第几个。最后的结果就是第2个。

除了按列查询第几行,也可以查询第几列,如查询姓名这个标题在第几列,函数公式:=MATCH(H5,A1:F1,0),同样好理解这个公式,就是查询姓名在第一行的标题行里是第几列。结果是第二列。

接着咱们再来看下【INDEX函数】

功能:查找单元格区域或数组常量中某行、某列或行列交叉点的值

语法:INDEX(array,row_num, [column_num])

中文语法:INDEX(单元格区域或数组常量,数组中的某行,[数组中的某列])

如图所示,查找吕布的工号。

按我们日常手动查找方式,也是先看姓名在2行,再查找对应的工号里相同行的单元格数字。

而MATCH函数已经查找出姓名所在的行数,用INDEX函数在工号列里获取对应行号的单元格值。

完整的公式为:INDEX(A2:A10,MATCH(H2,B2:B10,0))

多条件查找

面对多条件查找,尤其是两个条件的次序和表格里的次序还不一致的情况,使用VLOOKUP函数也麻烦,而INDEX函数+MATCH函数组合也就轻松搞定。

完整公式:index(f2:f10,match(h2&i2,b2:b10&a2:a10,0))

这里就是多了连接符&连接两个条件,注意次序保存一致就行。

根据需要,添加绝对引用符号。

行列交叉查询

=INDEX($F$2:$G$10,MATCH(I2,$B$2:$B$10,0),MATCH($J$1,$F$1:$G$1,0))

这里使用了两个MATCH函数,第一个MATCH函数确定查找值所在的行,第二个MATCH函数确定查找值所在的列,最后得出交叉后的位置,在通过INDEX函数获取单元格内的值。

获取最高分的姓名

如图所示,自动获取得分2这列里分数最高的姓名

公式:=INDEX($B$2:$B$10,MATCH(max($G$2:$G$10),$G$2:$G$10,0))

这里先使用了MAX函数获取这列里最大的值,在通过MATCH函数获取这个最大值的位置,最后使用INDEX函数获取同行位置姓名列里的姓名。

获取前三的姓名

如图所示,自动获取得分2这列里排名前三的姓名

=INDEX($B$2:$B$10,MATCH(LARGE($G$2:$G$10,ROW(A1)),$G$2:$G$10,0))

这里先使用LARGE函数+ROW(A1)获取最大的数字。

再用MATCH函数匹配出最大数字的位置。

最后用INDEX函数在同行的姓名列里获取单元格内姓名。

此处用了ROW(a1)函数获取LARGE函数的第二个参数,随着公式往下拖动,自动获取到第二、第三的姓名。

整行提取

=INDEX(C2:G10,MATCH(B13,B2:B10,0),0)

这个公式和上述公式不同的是,前面都是单列或是单行,而这里是一个五列多行的数据区域。

其他都一样,先用MATCH函数获取到行位置信息。

INDEX在这个多行多列区域里根据行号获取整行数据,注意的是,这里INDEX函数的第三个参数用0来代替。

看到这里,INDEX+MATCH函数是不是容易理解,也自由灵活的多,没有那么多的限制条件,使用起来特别的方便呢?

相关推荐

Frequency函数用法详解—6个示例

Hello,大家好!今天和大家分享Frequency函数的使用方法。Frequency函数可以用于统计数据的频率分布,其语法为frequency(data_array,bins_array)。其中参数...

期刊论文网:查重复值excel的函数

问:如何在excel表格中用公式查找重复值答:打开需要查找重复值的excel表格,找到需要查找的A列。2、将鼠标定位在C1单元格中,在编辑栏中输入公式“=IF(COUNTIF($A:$A,A1)>...

MATCH 函数的几个典型应用

MATCH函数,用于在一行或一列的查询区域中搜索指定内容,然后返回该内容在查询区域中的相对位置。MATCH函数有三个参数,第一个参数是查找对象,第二参数指定查找的范围,第三参数用数字来指定匹配方式...

LOOKUP+INDIRECT组合封神!合并单元格查询从此无压力!

你是不是经常遇到这样的问题?“A列部门是合并单元格,B列是员工姓名,怎么根据姓名快速查部门?”手动翻找?眼睛看花!用VLOOKUP直接查?合并单元格全是坑!今天教你一个神级公式,用LOOKUP+IN...

Match函数的使用方法

一、Match函数。功能:返回符合特定值特定顺序的项在数组中的相对位置。语法结构:=Match(查询值,数据范围,[匹配方式])。其中“匹配方式”有三种,分别为:-1(大于)、0(精准匹配)、1(小于...

两个表格如何匹配出相同的数据!用一个表查询另一个表进行填充!

Excel秘籍大全,前言两个表格匹配出相同的数据,可以通过匹配数据然后复制粘贴即可。当然,也可以直接使用VLOOKUP函数或者INDEX和MATCH函数组合来实现。具体使用哪种方法,可以根据自身需求来...

INDEX+MATCH函数一组合,赛过VLOOKUP函数

提到查询数据,首先想到的就是VLOOKUP函数。但VLOOKUP查询有两个不便之处:1、查找值(第一个参数)始终位于查找区域(第二个参数)的第一列;2、从左向右查找容易,但从右向左查找需要IF或CHO...

Excel模糊查找学会这5个方法,工作简直开了挂

模糊查找向来都是一个比较难的点,即使你对VLOOKUP、LOOKUP函数很熟悉,但有些问题也是要想很久。但当你学会下面这5个方法时,工作简直跟开了挂一样!下图中,我们想要通过E列的姓名在B:C表数据区...

PART19:MATCH+HLOOKUP查找匹配直接套用!

公式解析HLOOKUP:在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值。(默认情况下,表是升序的)数据表的首行必须为查找值所在行FALSE-精确匹配TRUE-近似匹配...

拒绝加班!快速完成Excel表格核对重复数据!

如何快速完成两个表格或者两组数据对比工作,在日常工作中非常重要,你用的是哪一种方法?平凡的世界平凡的你,努力学习使我们变得不平凡,今天要介绍的知识是excel核对表格差异的相关知识,你准备好学习exc...

如何筛选两个电子表格中重复的数据

#如何筛选两个电子表格中重复的数据#在Excel中筛选两个电子表格中的重复数据,可以通过多种方法实现。以下是几种常用的方法,以及它们的操作步骤:方法一:使用条件格式突出显示重复项打开Excel,并加载...

Excel-函数技巧,COUNTIF+MATCH+INDEX提取不重复物料

要求:用函数求出B列当中,不重复的物料,也就是物料的唯一值。函数公式如下:{=IFERROR(INDEX($B$3:$B$142,MATCH(0,COUNTIF($G$2:G2,$B$3:$B$142...

excel如何快速提取不重复值?提供2个经典用法

当excel有很多数据,而且有很多是重复数据的时候,如何快速提取不重复值就成为了需要解决的难题!如图中案例,A列是学校的列表,由于很多学员都出自同一所大学,所以就会有很多重复的。现在,需要提取不重复的...

如何根据多个条件查找数据,我整理了三种方法

一、案例如下图所示,A1:C8为某小区住户信息表,要求根据楼栋和房号查询住户姓名。二、解决方法方法一、INDEX+MATCH函数在G2单元格输入公式=INDEX($C$2:$C$8,MATCH(1,(...

利用match函数让两个表格排序一致

利用match函数让两个表格排序一致一线老师经常统计学生的情况,有时两个不同的表格由于姓名顺序不一致,手动调整往往需要耗费大量的时间与精力,当我们需要将两个表格的数据需要按照相同的顺序进行对比时,我们...