本篇文章给大家带来了关于excel的相关知识,主要介绍了index函数和match函数,这两个函数组合,能够完成vlookup函数和hlookup函数的全部查找功能,并且可以实现任意方向的查询以及多条件查询等,希望对大家有帮助。
相关学习推荐:excel教程
先来说说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个元素的内容,最终完成两个条件的数据查询。
相关学习推荐:excel教程
以上就是excel数据查询之index和match函数的详细内容。