EXCEL进阶课堂 · 函数说 持续更新,这是第10篇教程。
欢迎各位小伙伴转发、点赞、讨论,更欢迎私信获取练习素材,刻意练习才能学有收获。
01 问题引入
通过前面的学习,我们对VLOOKUP函数有了清晰的认识。
但是有小伙伴跳出来质疑:VLOOKUP函数的查询效率很低,一次只能查询返回一个值,要想两时返回两个及以上的值好像无法实现。
进阶君想说:EXCEL中自带的函数,是“出厂自带”,它的功能固定,是无法改变的。但是我们可以用所学的知识来弥补它不的足。
如下面的这个案例:
案例要用到的核心知识是查询,而用VLOOKUP函数来查询一次只能得到一个返回值,通过第9篇的教程我们可用实现这个函数的拖动复制,但是仍然没有改变它一次只能查询一个结果的实质。如何才能提到查询效率,一次实现整行信息的查询呢?
02 问题分析
案例中的任务要求是:
1.根据序号查询姓名、身份证号码、工作单位
2.想办法通过序号整体查询到相关信息。
输入序号后,查询到相关记录,就把后面三项的内容整行找到,一次性返回到相应的单元格里。
既然原生VLOOKUP函数无法实现,那么可以用什么方式来取代吗?
一般情况下,大体思路有两个:其一,通过函数的嵌套来实现;其二,用多个只能实现部分功能的函数组合来实现。在这篇文章中,进阶君给大家介绍第二种思路,想各位小伙伴展示一下很多高手会用到的方法之一。
03 问题解决
按任务要求来解决这个问题,会有很多种方法,进阶君在这里介绍match+index相结合的方法。
这两个函数在前面已经重点讲过,有需要的请查看:
第1讲 定位卫星——MATCH函数
第2讲 坐标查找——INDEX函数
第一部分:简要复习一下这两个函数
match函数——得到查找值所在的行数或列数
功能:查找指定的值,在查找区域当中所处的行数或列数。
格式:=match(查找值,查找区域,查找方式)
图形化介绍
index函数——得到查找单元格
功能:在查找区域内,按指定的行数和指定的列数获取单元格。
格式:=index(查找区域,指定行数,指定列数)
特别说明:当指定列数为0时,表示取得查找区域在指定行中的多个单元格;当指定行数为0时,表示取得查找区域在指定列中的多个单元格。
图形化介绍
通过上面的复习我们可以知道:
1.index这个函数可以获取某行或某列的单元格,而我们的题目就是要找到某行多个单元格;
2.到底找哪一行呢?不就是在确定输入序号值在序号列当中的行数吗?这个可以用match函数实现。
第二部分:问题解决的步骤
01 选择单元格
因为我们要同时得到三个结果放到三个单元格里面,所以,我们需要同时选择B13:D13三个单元格。这一步操作很重要。
02 输入公式
选择完三个单元格后,我们的把光标放到编辑栏里面,这里名称框里面显示的是B13,然后输入下列公式:
这个公式当中,match函数是确定输入的序号在序号列中的行数,index函数是在取B2:D9区域当中这一行所有的单元格。
03 按Ctrl+Shift+Enter三键确认公式
因为得到的结果是多个单元格,通常把通过公式得到的多个单元称为数组,在这种情况下,要确认公式时,需要按Ctrl+Shift+Enter三键,这一步非常重要,否则会出错。
此时,输入序号的单元格是空,这时不可能有结果,所以在查询结果单元格里面显示的是#N/A。
前3步操作的动图如下:
04 输入序号检查
在输入序号的位置输入要查找的序号,看能不能得到结果。经检查,我们的做法很好地达成了目标。
为了方便小伙伴们学习,我们的将原始素材共享出来,获取素材的方法:
第一步:关注 Excel进阶课堂。
第二步:私信 Excel进阶课堂,因为设定的是自动回复,所以内容一定要准确
私信内容:练一练
第三步:根据得到的链接打开网盘,找到 第10讲整行查询 工作簿 自行下载。