上周帮财务部优化月报,同事小李用了8列辅助列才搞定多条件匹配,我随手改成一个公式,整行辅助列全删了。他盯着我屏幕看了半天,问这是啥函数。
说实话,从VLOOKUP到XLOOKUP的升级,很多人还停留在"哦,多了个反向查找"的认知。但XLOOKUP真正厉害的地方不在单函数,而是跟LET、LAMBDA组合起来用,能干的事远超你想象。
VLOOKUP最大的痛点不是不能往左找,而是参数太反人类。第3个参数是列序号,数据一调整就全乱。XLOOKUP直接用返回范围替代列序号,源数据怎么动都不影响。
更关键的是内置默认值。以前VLOOKUP找不到就报#N/A,还得套一层IFERROR。XLOOKUP第6个参数直接写默认值,公式短一半。
=XLOOKUP(A2, 员工表!B:B, 员工表!A:A, "未找到")
这行公式干了3件事:查找、返回、容错。VLOOKUP得写两层嵌套才能实现同样效果。
Excel公式最让人崩溃的就是嵌套。一个IF套IF套IF,自己写的公式过两天自己都看不懂。
LET函数的思路很简单:把中间结果存成变量。
=LET(
单价, XLOOKUP(A2, 产品表!A:A, 产品表!C:C),
折扣, XLOOKUP(B2, 客户表!A:A, 客户表!D:D, 1),
单价 * 折扣 * C2
)
单价和折扣各查一次,最后相乘。逻辑一目了然,改起来也方便,不用在嵌套里翻来翻去找对应括号。
微软Excel产品负责人Brian Jones说过:"LET和LAMBDA的引入,是Excel公式30年来最大的范式转变。"这话不是夸张,是真的改变了写公式的思维方式。
这是最炸裂的。以前想写自定义函数得用VBA,现在LAMBDA直接在公式栏里搞定。
举个例子,计算加权平均:
=LAMBDA(值, 权重, SUM(值*权重)/SUM(权重))
在名称管理器里注册为"加权平均",以后直接写=加权平均(A2:A10,B2:B10)就行。
我给部门做绩效评分就用这个,5个维度加权汇总,以前是5列辅助计算,现在1个公式搞定。同事都说这不像Excel,像在写代码。
把3个函数串起来用才是真正的降维打击。我现在的月度报表模板就一个核心公式:
=LET(
原始数据, FILTER(数据表!A:Z, (数据表!B:B=G2)*(数据表!D:D>=H2)),
单价列, XLOOKUP(INDEX(原始数据,,3), 价格表!A:A, 价格表!B:B),
LAMBDA(行, SUM(INDEX(行,,4)*单价列))(原始数据)
)
筛选、查找、计算一步到位。以前这套逻辑得3个步骤、2个辅助表,现在1个单元格搞定。
别再守着VLOOKUP不放了。工具在进化,写公式的方式也该升级了。3个函数组合起来,不是3倍效率,是10倍。
你平时用Excel最头疼的是哪类公式?评论区聊聊,下期专门拆解。
