公式也能像写代码一样给变量起名字?Excel里还真有
你有没有遇到过这样的场景——同事离职留下一张Excel表,其中一个单元格的公式长到占满整个编辑栏:=IF(VLOOKUP(A2,$F$1:$G$9,2,0)>=60,"及格",VLOOKUP(A2,$F$1:$G$9,2,0))
或者你自己写的公式,一个月后回来改,发现完全忘了当初在算什么。这种“面条式公式”,又长又乱,改一个括号都要心惊胆战。今天给你介绍Excel里的“最强辅助”——LET函数。它不直接计算结果,却能让你写的每一个公式都变得像说明书一样清晰。01 LET函数到底是干什么的?
简单说:LET函数允许你在公式内部定义“临时名称”,把重复的计算结果存起来,反复使用。在编程里这叫“给变量赋值”。但需要Microsoft 365和Excel 2021以上版本的用户才能使用。=LET(名称1, 值1, 名称2, 值2, …, 最终计算)
用名称1替代值1,名称2替代值2,你可以在这里面设置N对,最后这些名称将参与“最终计算”。比如你想计算一个人的BMI指数,公式本来要重复引用体重和身高单元格,但是使用LET函数后,你可以写:=LET(体重, B2, 身高, C2, 体重/身高^2)
上面的公式表示:令体重=B2,身高=C2,然后用“体重”和“身高”来表达运算,如此更直观一些。当然如果你以为LET就是为了这样而诞生的话,那就大错特错了,因为这样只会增加了我们编写公式的复杂度,还不如直接写:02 一个案例,秒懂LET的威力
现在要完成右侧的查询功能:根据学号,查询学生的成绩情况,如果成绩>=60就显示“及格”,否则显示具体分数。=IF(VLOOKUP(E3,$B$2:$C$8,2,0)>=60, "合格", VLOOKUP(E3,$B$2:$C$8,2,0))
很显然,这个结果是没有问题的。但是你看到了吗?——VLOOKUP(E3,$B$2:$C$8,2,0)这个部分,我们在公式中写了两次,如果数据量很大,表格运算就会变得很慢了,因为Excel可能会把这个vlookup查询执行两次,同时它也不利于使用、观察和理解公式。=LET(成绩, VLOOKUP(E3, $B$2:$C$8, 2, 0), IF(成绩>=60, "合格", 成绩))
上图可以清晰解释这个公式的含义。公式长度减少一半,逻辑一眼就能看懂。而且那个VLOOKUP现在只计算一次,性能更好。这就是LET的核心价值:减少重复 + 提升可读性 + 提高计算效率。03 进阶用法:像搭积木一样写公式
LET的强大不止于此。你可以定义多个名称,后定义的名称还可以引用前面定义好的名称。比如:要把摄氏度转成华氏度,并且保留两位小数、加上单位“°F”。=ROUND(TEXTBEFORE(A2,"℃")*9/5+32,2)&"℉"
这样写会嵌套好几个函数,写成一团,万一出错检查起括号来非常痛苦。=let( c, textbefore(A2, "℃"), r, 9/5, f, c*r+32, round(f,2) & "℉")
这样的公式简单、直观,不易出错,你只需要将公式写成多行就行(Alt+Enter换行)。即使过了半年你再回来看它,你也能瞬间理解这个公式在干什么。写在最后
很多人学Excel函数,总以为越复杂的函数越厉害。其实不是的。能写出让人一眼看懂、方便修改、运行高效的公式,才是真正的Excel高手。LET函数没有增加任何新的运算能力(它自己不会求和、不会查找),但它让其他函数可以更优雅地协同工作。从今天起,遇到任何重复引用同一段计算的场景,试着问问自己:“这里能不能用LET起个名字?”当你习惯用LET拆解逻辑后,你会发现:公式不再是堆砌出来的天书,而是你自己设计的一段干净流程。这比多背10个函数,更有价值。
如果你觉得这篇文章有用,欢迎点个「在看」,转发给身边被长公式折磨的朋友。你的Excel,值得更优雅。