Vlookup函数是Excel中的一个纵向查找函数,往往利用它进行数据匹配,然后在某些场景下,Vlookup并不是最优的选择。

这种情况就是逆向查找

如下图所示,如果要查找每个人的性别用vlookup函数的正常用法是无法实现的。

这是因为vlookup搜索值(参数一)必须要在搜索区域(参数二)的首列,上图参数二搜索区域要框选的话只能框选A-B列,这样姓名列就处于第二列,而非首列,自然匹配不出来正确的结果。

这种情况一般可以将性别列移动或复制到姓名列之后,再利用vlookup函数正常匹配。

然后有些小伙伴表示,我偏不移动表格还要用vlookup函数去实现。

然后就出现了所谓的vlookup高级用法:

=VLOOKUP(E2,IF({1,0},B:B,A:A),2,0)

这里我先解释下这种用法:

参数二 IF({1,0},B:B,A:A) 构建了vlookup函数的查找区域,在Excel当中1代表TRUE、0代表FALSE,IF({1,0},B:B,A:A) 等价于 IF(1,B:B,A:A)+IF(0,B:B,A:A),前者返回B:B列,后者返回A:A列,两者组成区域B:A,通过这种方法我们就将姓名列移动到首列,从而完成匹配。

选中参数二,按下F9键可以发现IF({1,0},$B$2:$B$10,$A$2:$A$10)构建的数组内容。

函数看着高大上,那么我为什么不建议使用这种方法:

1、体验感差,对新手不友好

我们正常理解的vlookup函数都是直接框选查找区域,方便简洁,这里需要自己构造,且公式较长,体验感差,最重要的一点是对新手不友好,构造数组理解起来较为困难;

2、运算效率低,吃计算机资源

相较于vlookup函数正常的用法,这里的逆向查找用法需要先构造出一个中间数组,再从中查找匹配正确的数据,无疑增加了一步中间过程,同时构造的中间数组也吃内存资源,降低运算效率。

总而言之,性价比不高,不推荐使用。

那么有哪些好的方法推荐?

一、移动位置

移动列位置,实在不给移就复制列位置,上图中,可以将 性别列 复制到 姓名列 后方,再利用vlookup函数正常匹配。

二、=INDEX(A:A,MATCH(E2,B:B,0))

index+match函数结合使用,match函数找到查找值位置,index函数返回对应匹配值。

三、=XLOOKUP(E2,B:B,A:A)

需要office2021&office365版本,低版本用不了。

小结

解决问题是本质,而不是为了炫技,简单、高效、实用、通俗、易懂才是王道。

以上就是今天的分享,希望对你有所帮助~

举报/反馈

Excel函数编程可视化

7532获赞 2.2万粉丝
每天一个Excel小技巧, 记得点个关注哦~
教育领域爱好者
关注
0
0
收藏
分享