学习是一个很讲究方法的事,学同样的东西,有人三年一小成,有人一年即可大成。而方法究竟是什么,其实方法就是思路。一旦思路对了,那么方法再总结起来就不有了根基和着力点了,学习自然也就事半功倍。

说起VLOOKUP函数,估计是大多数人接触EXCEL之后,学会的第一个真正意义上的函数(除SUM外)。百度一搜VLOOKUP函数,都会带出来一大堆的教学和讲解文章、视频。那么看过这些文章之后,你真的学会了吗?可能有的人学会了一种、两种用法,但是依然无法做到一生二、二生三。因为缺少思路的讲解,大家只能跟着学应用。因为大家对它很熟悉,所以用它来举例,主要是总结个思路,供大家参考。
VLOOKUP的用法大致分为这么几种:1、常规查询;2、反向查询;3、多条件查询;4、一对多查询;5、数值区间查询;6、取值查询;7、合并单元格查询;8、查询输出多个结果;
如果你会这8种查询之后,那么EXCEL的所有查询需求都不在话下了,并且你还会比人家高一个层次:理解公式的能力会增强,或许能打开你对其他函数的学习大门。但如果你会这8种背后的逻辑,可能你得到的就不再只是VLOOKUP函数了。
1、常规查询
语法:
=Vlookup(lookup_value,table_array,col_index_num,range_lookup)
应用场景:找到目标值,在查找区域中对应的查找结果,向右查找。
其它不用多说,只说明使用的时候注意两点,且必须掌握的两点:①查询只能找到查找区域内第一次出现的值;②最后一个参数一定要写0或者FALSE,这是初学者容易忘记的地方。
2、反向查询

语法:
=VLOOKUP(H6,IF({1,0},C1:C20,B1:B20),2,0)
找到目标值,在查找区域中对应的查找结果,向左查找。
思路讲解:函数的关键在于套用了一个IF函数,使用IF函数把C列和B列的内容转化成了一个内置数组,于是就有了反向查询的实现。
IF函数通常我们使用的时候,都只是用于单个值逻辑判断,这里用于一列的判断(对电脑来说过程都一样),输出的结果是这样的:{"订单号","产品名";"DD0001","电视机";……},注意这里的分号和逗号的区别,内置数组中这两个符号的作用有明确区分。
另外这个公式得以实现是因为VLOOKUP函数的第二个参数table_array,支持数组作为参数,而我们用IF得到的就是一个数组,所以他们一拍即合。

3、多条件查询

语法:
=VLOOKUP(H6&I6,IF({1,0},A1:A21&B1:B21,D1:D21),2,0)
应用场景:当查找两个以上的条件时,使用该方法实现。
思路讲解:理解了第二种用法,那么这种用法也是同理可得,就是把A、B两列合并成一列而已,其余都是一样的,所以有时候看起来高深,实际上都是一回事。
4、一对多查询

语法:
=VLOOKUP($H$6&ROW(A2),IF({1,0},A2:A22&E2:E22,B2:B22),2,0)
应用场景:查找范围内的查找值是重复的时候,可以应用这个公式。
思路讲解:常规的VLOOKUP只能返回首个满足条件的对应值,于是就有了一个制约条件,被查找值只能是非重复值。这个公式也正是应用了这个特性,利用城市和辅助列组合成为一个唯一值,然后就能返回城市对应的产品名了。
思路小结一下:从第2种到第4种的应用,其实都是一种应用:利用IF函数构建一个有效的被查找数据数组,实现返回结果。问题点现在转化为,如何构建有效的被查找数据数组。一点要求:被查找数据的查找依据列为非重复值。
5、数值区间查询
),注意最后一个参数
使用场景:将数据快速区分成规定的区间范围;
思路讲解:这个用法其实是LOOKUP的演化而来,LOOKUP是利用了二分法原理将区间进行分区,然后取值(对二分法有兴趣的可以自己去看一下,需要讲解得另分一篇)。这里要注意的是区间划分的时候,必须升序,如果不是就会出错,这是由二分法原理决定的。
2*LEN(F2)-LENB(F2)

语法:
=B2&IFERROR(","&VLOOKUP(A2,A3:E21,5,0),"")
使用场景:想一次性得到一对多的结果合集,可以使用这个方式,当然使用方案4也没问题,只是多一种解决方式就多一种思路的开拓。
中的老顽童级别了。

再补充一个通配查询,EXCEL中,基本上的函数都支持通配符:*代表多个字符,?代表一个字符。
VLOOKUP("DD*1?",C:D,2,0),
匹配出来符合条件的第一个订单就是DD0010,这个没什么理解难度,自己看一下例子就知道了。

掌握根基,对于函数而言根基就是其语法、参数。只要把握住这个本质,它怎么变也逃不出你的手心了。