数据查询的最佳拍档,INDEX和MATCH函数珠联璧合

INDEX和MATCH珠联璧合

Hello,大家好。今天和大家分享一个数据查询的最佳拍档-----INDEX函数和MATCH函数。这两个组合函数,能够完胜VLOOKUP函数和HLOOKUP函数的全部查找功能,并且可以实现任意方向的查询以及多条件查询等。

首先来说说INDEX函数的作用:

INDEX函数用于在一个区域中,根据指定的行、列号来返回内容,该函数通常用两个或三个参数;

三个参数其语法是:INDEX(单元格区域,指定的行数,指定的列数)

例如以下公式,用于返回A1:D4单元格区域第3行和第3列交叉处的单元格,即C3单元格=INDEX(A1:D4,3,3)

两个参数的写法是:INDEX(一行或一列数据,指定返回第几个元素)

例如公式=INDEX(A1:D1,2),用于返回A1:D1单元格区域第2个元素,即B1单元格的内容

其次来说说INDEX函数的作用:

MATCH函数用于在一行或一列的查询区域中搜索指定的内容,然后返回该内容在查询区域中的相对位置。

MATCH函数有三个参数,第一个参数是查找对象,第二个是指定查询的区域,第三参数用于指定匹配的方式,通常用0,表示精确匹配。

例如以下公式,就是返回D3单元格的内容在A2:10中所在的位置,结果为8.

=MATCH(D3,A2:A10,0)

注意这里的8,是指查找内容在查询区域中所处的位置,不是说工作表的第几行。另外,如果在数据区域内包含多个查找值,MATCH函数只返回查找值第一次出现的位置。

通过上面对INDEX函数和MATCH函数的介绍,相信有的小伙伴可能已经发现了,INDEX是根据位置返回内容,MATCH是返回内容在一行或一列中的位置。接下来,我们就来说说这两个高手的常见配合招式:

INDEX联手MATCH,实现正向查询

如下图所示,要根据D3单元格中的姓名,在A-B列查询对应的职务。E3单元格公式为:

=INDEX(B:B,MATCH(D3,A:A,0))

解释说明:先使用MATCH函数,查找D3单元格的""在A列中所在的位置,得到结果为8,。然后使用INDEX函数,在B列中但会第8个元素的内容,结果就是"小昭"对应的职务。

INDEX联手MATCH,实现逆向查询

如下图所示,要根据E3单元格中的职务,在A—B列查询对应的姓名。F3单元格公式为:=INDEX(A:A,MATCH(E3,B:B,0))

解释说明:先使用MATCH函数,查找E3单元格的"秘书"在B列中所处的位置,得到结果为"10"。然后使用INDEX函数,在A列中返回第10个元素的内容,结果就是"秘书"对应的姓名。

INDEX联手MATCH,实现多条件查询

除了常规的单条件查找招式外,这两位高手还可以完成多条件的查询。

如下图所示,需要根据E列和F列的职务和年龄信息,在A-C列单元格区域中,查找职务为"秘书",年龄为"20"岁对应的姓名。G3单元格公式为:

= INDEX(A:A,MATCH(E3&F3,B:B&C:C,0))

注意这里是一个数组公式,输入完成后需要将光标放到编辑框中,按住Shift+ctrl不放,再按回车完成。


解释说明:这个公式先使用连接符&将E3和F3的职务年龄合并成一个新的条件。 再使用连接符&将B列和C列的信息合并成一个新的查询区域。然后使用MATCH函数,查询出职务&年龄在查询区域中所在的位置。最后用INDEX函数,得到A列第"5"个元素的内容,最终完成两个条件的数据查询。


好了,今天就跟大家分享到这里了,祝各位小伙伴学习快乐。