VLOOKUP倒序查找
有点基础的同学都知道VLOOKUP函数的查找方向是从上向下的,即当有多个符合条件的数据时,公式结果会返回最上面的那个。
但在实际工作中,有时会遇到要求你从下向上倒序查找的需求,比如提取最新报价、查询最新库存、查询项目最新状态等等。
这时候我看到80%的同学都还在用最笨的方法计算,也就是先自己把原始数据复制到另一个辅助区域,再添加序号,将原始数据的顺序从下到上重新排列一遍,再用VLOOKUP公式查找数据。
虽然这方法笨是笨了点,但好在费点劲也能解决问题,但我希望你能完美的解决此类问题,所以本文的解决方案也是为了帮大家拓宽视野,多了解一些VLOOKUP函数的灵活应用方法,同时激发同学们更丰富的案例处理思路。
今天要讲的就是VLOOKUP从下向上倒序查找的技术,看完觉得好的,记得去底部点个好看再分享给朋友,我会根据大家的反馈调整发文内容及写法。
问题描述
下图左侧A列放置的是报价日期,B列是保价商品,C列是报价。
要求在右侧按照E2单元格要求查询的商品,查找其最新报价。
实质上这个问题就是要求VLOOKUP从下向上倒序查找,这应该怎么做呢?
为了让大家清晰案例效果,可以先看下面的效果演示,自己思考一下。
效果演示
下图是我做好公式以后的效果演示,便于你理解案例要求和捋顺思路。
右侧黄色公式区域,根据要求查询的商品,自动把最新报价返回到F2单元格。
为了方便你快速查看结果,我在报表里加入了可视化自动突出显示目标结果,E2的查询条件变更后,左侧数据源中的该商品所在行都会黄色填充。(这种数据可视化技术在四期特训营专门有一章精讲过)
下图是写好公式以后的演示效果
(下图为gif动图演示)
从上面的动图演示可见,无论选择什么商品查询,公式都可以很智能的把你想要的结果查找出来。
在看下面的解决方案之前,请你先独立思考,带着思路和问题继续向下看。
解决方案
思路提示:解决这个问题的关键点,是解决倒序查找问题,也就是构建VLOOKUP函数的查找区域,即VLOOKUP函数的第二参数。
这里我们依然使用多函数组合来进行技术实现,只不过需求不同,组合方法随之变更即可。
F2单元格输入如下数组公式,按ctrl+shift+enter三键输入:
=VLOOKUP(E2,IF({1,0},T(OFFSET(B1,100-ROW(1:99),)),N(OFFSET(C1,100-ROW(1:99),))),2,)
如下图所示。
(下图为公式示意图)
一句话解析:
此公式共3个关键点,OFFSET函数负责根据要求引用数据区域;T或N函数根据要返回的数据格式将OFFSET返回的引用区域能够让VLOOKUP函数接收;IF函数将T或N配合OFFSET引用的两个区域联结在一起作为VLOOKUP函数的第二参数。
这三个关键点缺一不可,全部具备才能使公式返回正确结果,如果你差一点也无法搞定问题,这也是考量你综合实力是否过硬的时刻。
此案例依然是一个使用多函数组合嵌套创造条件构建所需的内存数组解决问题的经典案例,你会发现处理复杂问题都需要用到这点,万变不离其宗。
到这此教程还没结束,本文再多提供一种便捷解法,请往下看。
再加一种解决方案
思路提示:虽然本文主要扩展VLOOKUP解法,但这类案例最优解法是用LOOKUP万能公式,选择合适的方法有助于更快捷的解决问题。
G2单元格输入如下公式,
=LOOKUP(1,0/(B2:B13=E2),C2:C13)
如下图所示。
(下图为公式示意图)
一句话解析:
此公式是LOOKUP万能公式的经典应用,在二期特训营的函数初级班用超清视频同步演示专门讲解过多个函数的万能公式及变通解法,其中已包含LOOKUP万能公式,所以此处不再赘述。
万能公式的真正万能之处在于使用人的灵活变通,就好比即使是同样的武术套路,这其中的发招、接招、套招、拆招、解招等变化数不胜数,将其有机组合后的变幻打法还会更多,真正的武林高手并不是比别人多会很多种功夫,而是同样的功夫能够用到极致。
我结合16年的职场经验,用了18个月的时间整理和提炼,Excel函数相关的思路、技术以及原理解析,在下面的3门成体系的函数课程里面已经系统完整涵盖。