先来说说INDEX函数的作用:
INDEX函数用于在一个区域中,根据指定的行、列号来返回内容。
该函数通常使用两个或是三个参数,三个参数的写法是:
INDEX(单元格区域,指定的行数,指定的列数)
例如以下公式,用于返回A1:D4单元格区域第3行和第4列交叉处的单元格,即D3单元格。
=INDEX(A1:D4,3,4)
两个参数的写法是:
INDEX(一行或一列数据,指定要返回第几个元素)
例如以下公式,用于返回A1:A4单元格区域中的第3个元素,即A3单元格的内容。
=INDEX(A1:A4,3)
接下来咱们再说说MATCH函数的作用。
MATCH 函数用于在一行或一列的查询区域中搜索指定内容,然后返回该内容在查询区域中的相对位置。
MATCH 函数有三个参数,第一个参数是查找对象,第二参数指定查找的范围,第三参数用于指定匹配方式,通常使用0,表示精确匹配。
常用写法是:
MATCH(要找谁,要查询的一行或一列区域,匹配方式)
例如以下公式,就是返回C3单元格的内容在A2:A10中所处的位置,结果为7。
MATCH(C3,A2:A10,0)
注意这里的7,是指查找内容在查询区域中所处的位置,不是说工作表的第几行。另外,如果在数据区域中包含有多个查找值,MATCH函数将只返回查找值第一次出现的位置。
看到这里,有的小伙伴可能已经对上号了,INDEX是根据位置返回内容,MATCH是返回内容在一行或一列中的位置。接下来咱们就说说这两个搭档的常见用法:
正向查询
如下图所示,要根据D3单元格中的姓名,在A~B列查询对应的职务。
E3单元格公式为:
=INDEX(B:B,MATCH(D3,A:A,0))
先使用MATCH函数,查找D3单元格的“小龙女”在A列中所处的位置,得到结果为8。然后使用INDEX函数,在B列中返回第8个元素的内容,结果就是小龙女对应的职务了。
逆向查询
如下图所示,要根据D3单元格中的职务,在A~B列查询对应的姓名。
E3单元格公式为:
=INDEX(A:A,MATCH(D3,B:B,0))
先使用MATCH函数,查找D3单元格的“秘书”在B列中所处的位置,得到结果为5。然后使用INDEX函数,在A列中返回第5个元素的内容,结果就是秘书对应的姓名了。
两个不同方向的查询,使用的公式套路完全一样,如果有兴趣,你可以试试上下方向的查找公式怎么写。
多条件查询
除了常规的单条件查找,这两个搭档也可以完成多条件的查询。
如下图所示,需要根据E列和F列的职务和年龄信息,在A~C列单元格区域中,查找职务为“秘书”,年龄为“19”岁所对应的姓名。
G3单元格公式为:
=INDEX(A:A,MATCH(E3&F3,B:B&C:C,0))
注意这里是一个数组公式,输入完成后需要将光标放到编辑框中,按住Shift+ctrl不放,再按回车完成。
先使用连接符&,将E3和F3的职务年龄合并成一个新的条件。
再使用连接符将B列和C列的信息合并成一个新的查询区域。
然后使用MATCH函数,查询出职务&年龄在查询区域中所处的位置8。
最后用INDEX函数,得到A列第8个元素的内容,最终完成两个条件的数据查询。