打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
突破 VLOOKUP 函数反向查找的限制

 Excel          

生产、搬运分享Excel基础知识

   

用1%的Excel基础搞定99%的日常工作

┿Excel是门手艺,玩转需要勇气┾

坚信你所坚持的事必有回报

生产、搬运、分享Excel

办公提升微社区

Excel情报局推荐音乐,学习更轻松

 

爱,不是寻找一个完美的人,而是学会用完美的眼光,欣赏那个并不完美的人。 每个人心中都住着一个孩子,每个女孩子心里都有一座城堡。 我一直在躲避,但我终于找到要保护的人了,那就是你。 因为爱你,只要你一个肯定,我就足够勇敢。

如下图所示,学生的学号与姓名是一一匹配的,如已知学号要查找姓名,可用VLOOKUP函数 解决,F2 单元格公式如下:

=VLOOKUP(E2,A2:B10,2,0)

但反过来已知姓名要查找学号,直接用VLOOKUP函数就不行了。

1.问题分析

上图    已知姓名查询学号

这里直接用VLOOKUP不行,原因在于在查找区域中需要返回的“学号”在“姓名”的左边,也就 是不符合需要查找项目“姓名”在查找区域A2:B10的第一列的条件。

2.解决方案(1)

知道了问题的所在,解决就容易了。如果在“学号”的左侧有一列“姓名”,这个问题就迎刃而解 了。一个笨方法是在A列“学号”之前插入一列,复制原B列“姓名”的内容,这样就可以直接使用VLOOKUP函数了。

这种方法思路是对的,但操作方法不可取。不建议随意更改数据源,用函数完全能达到插入一个辅助列,重构数据源的效果。在F5 单元格录入如下公式:

=VLOOKUP(E5,IF({1,0},B2:B10,A2:A10),2,)

3.公式解析

整个公式外层还是VLOOKUP函数,关于这个函数的用法不再赘述。

公式中使用了一个IF  函数作为VLOOKUP  函数的第2  参数,在编辑栏中选取这一段函数 “IF({1,0},B2:B10,A2:A10)”,按F9 键,返回结果为:

{"管莺菲","A001";"石永绍","A002";"越俊","A003";"崔亨","A004";"于成中","A005";"狄影淑","A006";"糜彩青","A007";"秋彩伊","A008";"裘健栋","A009"}

返回结果中的花括号代表数组,逗号表示同行不同列,分号表示换行。整个返回结果代表一个9行2 列的内存数组。如果直接用F9 键看不容易理解,还可以将这个IF函数的运算结果放到单元格中。选取H2:I10 单 元格区域,录入公式“=IF({1,0},B2:B10,A2:A10)”,按“Ctrl+Shift+Enter”三键结束,返回结果如下图:

由上图可见,使用IF函数,返回了一个内存数组,相当于重构了一个区域,而这个重构的区域正 好满足使用VLOOKUP查找时查找值位于被查找区域第一列的要求。

4.函数套路——IF{1,0}解析

这里IF函数的用法和常规不同。第一个参数中使用了一个常量数组{1,0},第二、三参数各使用了一列数据区域。对于返回结果,可以理解为一个1*2 的数组与另一个9*1的数组的运算。返回的是一个9*2的数组。

如能理解数组运算的原理,就能明白为什么IF函数第一参数不能写成{1;0},不要小看仅一个符号 的差异,逗号表示横向,分号表示纵向,使用{1;0},整个IF函数返回的结果相当于是一个2*1的数组与一个9*1的数组运算,因这两个数组方向相同大小不一样,部分返回值会出错,使用F9测试的结果是:

{"管莺菲";"A002";#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A}

仅是一个9行1列的数组,如下图所示:

如果能够理解IF{1,0}的返回结果,小伙伴们可以自行测试以下公式:

=VLOOKUP(E5,IF({0,1},A2:A10,B2:B10),2,)

=VLOOKUP(E5,CHOOSE({1,2},B2:B10,A2:A10),2,)

=VLOOKUP(E5,CHOOSE({2,1},A2:A10,B2:B10),2,)

这三个公式也能得出正确的结果,CHOOSE函数构建内存数组的效果同IF{1,0}

职场点睛:

困扰很多小伙伴的反向查找问题就这样解决了,强烈建议小伙伴多尝试一下这个函数套路,学会这一招,今后在工作中遇到类似问题无需每次再构建辅助列,一个公式就能搞定。

5.解决方案(2)

使用IF{1,0}构建内存数组的方法很经典,但相对理解有一点难度。查找的问题并非一定要通过VLOOKUP函数来解决,使用其他函数也能轻松搞定。在F5 单元格录入如下公式:

=INDEX(A2:A10,MATCH(E5,B2:B10,0))

6.公式解析

对于这个公式,里层是一个MATCH函数,作用是“定位”,在单元格区域中搜索指定项,然后返 回该项在单元格区域中的相对位置(返回值是一个数值)。公式各参数解释如下表。

小伙伴们可以在编辑栏中选中公式的MATCH部分“MATCH(E5,B2:B10,0)”,按F9 键观察返回值,返回结果如下图所示。

公式的外层是一个INDEX函数,我们可以把INDEX函数的第1参数理解为一个矩形区域,函数的结果是返回矩形区域中的某个值,具体返回哪一个值则由该函数的第2、3参数决定。第2、3参数告诉 Excel,返回值在区域中的第几行和第几列。

本例中INDEX函数的第一参数A2:A10仅有一列,可以省略第3参数,根据第二参即MATCH函数计算的结果来决定返回值的结果。

小伙伴们可在E1单元格的数据有效性下拉列表中任意选择学生姓名,观察F1 单元格公式结果的变化。

7.函数套路——INDEX+MATCH解析

INDEX+MATCH函数组合相当于把原来VLOOKUP一个函数的工作分配给了两个函数来完成。虽 然没有VLOOKUP那么惊艳,但这个函数组合能完成的工作比单一的VLOOKUP函数要多很多,至少VLOOOKUPINDEX+MATCH数组合都

使用INDEX+MATCH函数组合也能完成,公式如下:

=INDEX($H$1:$H$15,MATCH(A2,$G$1:$G$15,0))

这个公式的含义是先在G列的“货号”区域$G$1:$G$13中查找A2单元格中的货号,然后在H列 “销售汇总”区域$H$1:$H$13返回货号对应的销售额。

职场点睛:

这个函数套路给我们的启示是解决问题不要仅局限在一种方法上,多掌握几个基础的函 数对日常工作绝对是有帮助的。

 IF{1,0}与INDEX+MATCH方法比较

两种方法都很经典,对于初学者建议多尝试一下INDEX+MATCH函数的组合,思路不要总局限在VLOOKUP函数上。

对于IF{1,0},使用时要考虑是否需要使用数组公式(即按“Ctrl+Shift+Enter”三键结束)。本文例子是不需要使用数组公式结束的,因为IF函数的第二和第三参数仅是引用了工作表中的单元格区域,并没有计算,如在引用的同时还有计算,就需要使用数组公式结束。


ATTENTION

 往 

Excel电话号码导入手机通讯录

30套炫卡通风格PPT模板分享】

【40套酷梦幻风格PPT模板分享

20套日常工作风PPT模板分享

PDF格式的文档,你玩得转

材料出入库电子表格模板分享】

爱剪辑破解去片头片尾广告

备考公务员之公文写作大全

Excel财务账模板超级实用

没想到Excel竟然也能抠图

Excel制作田字格书法字帖

电脑重装系统4招,看看

Excel证件照红底换蓝底

Excel四级菜单的制作

  【Excel制作公章神技巧

F1键到F12键的妙用


  欢迎联系我们

                              

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Vlookup函数详解,教你真正认识Excel中的函数
Excel逆向查找的四种方法
Excel的vlookup函数如何进行一对多数据的查找?
Vlookup函数实例(全)
花了5个小时,总结了8个Excel多条件查找的方法,值得收藏
Excel|三个不同查找公式的异曲同工之妙及细微区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服