VLOOKUP。
这玩意儿,职场人用了二十年。
查数据、匹配信息、跨表汇总——
只要你跟Excel打过交道,VLOOKUP你肯定用过,或者被它折磨过。
但我今天要告诉你一个事实:
VLOOKUP的那个时代,该结束了。
不是它不好用,是有个比它强一百倍的东西出现了。
这个新东西叫FILTER。
先说VLOOKUP的鬼故事
你有没有过这种经历——
两张表,你需要把B表的数据匹配到A表去。
你的第一反应:VLOOKUP伺候。
=VLOOKUP(A2, B:D, 3, FALSE)然后开始数列——B是第1列、C是第2列、D是第3列……
等等,D是第几列来着?
算了,数一遍。
好,公式填好了,往下一拉——
#N/A。
有匹配不到的。
你开始排查:空格问题?格式不统一?表格太乱?
折腾半小时,终于找到原因——原来A列有个单元格多了个空格。
你去掉空格,再拉——
还是有#N/A。
换个思路,又是半小时。
这就是VLOOKUP的日常:一个简单需求,折腾你一上午。

VLOOKUP的四大原罪

原罪一:只能从左往右查
VLOOKUP只能查找第一列,然后返回右侧的列。
你想返回左侧的数据?
对不起,做不到。
得用INDEX+MATCH组合,公式长到能绕地球三圈。
原罪二:列序号得手动数
=VLOOKUP(查找值, 区域, 3, FALSE)这个"3"你得自己数。
多了一列少了一列,你根本不知道。
数错了就报错,错了就重来。
原罪三:匹配不到就炸给你看
找不到就 #N/A,你得在外面再套一层 IFERROR。
=IFERROR(VLOOKUP(...), "找不到")一个简单匹配,公式写三行。
原罪四:只能返回一个结果
VLOOKUP返回的是单个值。
你想筛选出符合条件的所有行?
做梦!
你得一个个查,或者用其他方法折腾。
所以FILTER来了
一句话定义FILTER:
你设条件,它自动给你筛选出所有符合条件的结果。
语法长这样:
=FILTER(要返回的区域, 条件, [找不到时显示什么])就这么简单。
没有列序号,没有从左到右的限制,没有只能返回一个值的烦恼。
FILTER vs VLOOKUP:碾压局
对比1:基本查找
VLOOKUP:
=VLOOKUP(A2, B:D, 3, FALSE)得数第几列,烦不烦?
FILTER:
=FILTER(C:C, A:A=E2)直接说"从C列里找A列等于E2的"。
简洁明了,不需要数列。
对比2:找不到怎么办
VLOOKUP:
=IFERROR(VLOOKUP(A2, B:D, 3, FALSE), "找不到")套三层。
FILTER:
=FILTER(C:C, A:A=E2, "找不到")第三个参数直接写。
对比3:返回左侧数据
VLOOKUP: 想都别想
FILTER:
=FILTER(A:A, C:C=E2)从A列返回C列等于E2的——支持返回左侧数据,随便返。
对比4:返回多个结果
VLOOKUP: 只能返回一个值
FILTER:
=FILTER(A:C, B:B="华东")返回所有华东区的行,有多少返多少,一口气全给你。
实战演示:两张表搞定跨表匹配
场景
A表:员工信息表(工号、姓名、部门)
B表:销售业绩表(工号、销售额)
需求:在A表后面加一列"销售额"
传统VLOOKUP写法
=VLOOKUP(A2, B!A:B, 2, FALSE)得记住B表的列顺序,还得数第几列。
FILTER写法
=FILTER(B!B:B, B!A:A=A2, "无销售额")直接说:B表里,工号等于A002的那一行,B列是多少。
人话就是人话,不需要翻译成"第2列、第3列"。
多条件匹配:FILTER的真正威力
这是VLOOKUP的禁区,但FILTER轻松搞定。
场景
员工绩效表:
需求:找出"华东区"+"1月"的所有员工绩效
VLOOKUP: 做梦
FILTER:
=FILTER(A2:D5, (B2:B5="华东")*(C2:C5="1月"))两个条件相乘,就是"同时满足"的意思。
结果:
你想要的所有结果,一行公式,全给你筛出来。
FILTER的三大骚操作
骚操作1:跨表筛选
=FILTER(另一张表!A:D, 另一张表!D:D>10000, "无")不用复制粘贴,直接跨表筛选。
骚操作2:筛选后排序
=SORT(FILTER(A:C, B:B="华东"), 3, -1)筛选华东区,然后按第3列(绩效)降序排列。
一个公式,筛选+排序全搞定。
骚操作3:筛选后求和
=SUM(FILTER(C:C, B:B="华东"))筛选出华东区的销售额,直接求和。
不用先筛选、复制、再求和。一步到位。
总结:FILTER凭什么叫究极进化?
VLOOKUP能做的,FILTER都能做。VLOOKUP做不了的,FILTER也能做。
这就是为什么我说——VLOOKUP的时代该结束了。
不是因为它不好,是因为有更好的了。
新手常见问题
Q1:为什么我输入FILTER报错?
FILTER是Excel 365和Excel 2021的新功能。低版本没有这个函数。
Q2:FILTER返回的是一片数据,怎么删?
这是"溢出区域",不要手动删,选中左上角单元格,按Delete即可。
Q3:VLOOKUP还要学吗?
要学。老文件里到处都是,而且有些简单场景VLOOKUP更直接。
但FILTER是升级方向,能用FILTER的场景优先用FILTER。
好了,今天就到这里。
总结一句话:能用FILTER,就别再死磕VLOOKUP了。
夜雨聆风