乐于分享
好东西不私藏

这个LET函数,让你的Excel公式清晰10倍,从此告别“面条式”公式!

这个LET函数,让你的Excel公式清晰10倍,从此告别“面条式”公式!

公式也能像写代码一样给变量起名字?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就是为了这样而诞生的话,那就大错特错了,因为这样只会增加了我们编写公式的复杂度,还不如直接写:
=B2/C2^2

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函数改写:
=LET(成绩, VLOOKUP(E3, $B$2:$C$820), IF(成绩>=60"合格", 成绩))
上图可以清晰解释这个公式的含义。公式长度减少一半,逻辑一眼就能看懂。而且那个VLOOKUP现在只计算一次,性能更好。这就是LET的核心价值:减少重复 + 提升可读性 + 提高计算效率
下面用动画演示一下这个查询:

03 进阶用法:像搭积木一样写公式

LET的强大不止于此。你可以定义多个名称,后定义的名称还可以引用前面定义好的名称。比如:
要把摄氏度转成华氏度,并且保留两位小数、加上单位“°F”。
传统做法:
=ROUND(TEXTBEFORE(A2,"℃")*9/5+32,2)&"℉"
这样写会嵌套好几个函数,写成一团,万一出错检查起括号来非常痛苦。
用LET可以这样:
=let(    c,  textbefore(A2, "℃"),    r,  9/5,    f,  c*r+32,    round(f,2) & "℉")
公式中:
  • c是从A2单元格中提出来的摄氏温度对应的数字
  • r是转换比例
  • f是华氏度的值
  • round(f,2) & "℉"是最终计算
这样的公式简单、直观,不易出错,你只需要将公式写成多行就行(Alt+Enter换行)。即使过了半年你再回来看它,你也能瞬间理解这个公式在干什么。

写在最后

很多人学Excel函数,总以为越复杂的函数越厉害。其实不是的。能写出让人一眼看懂、方便修改、运行高效的公式,才是真正的Excel高手。
LET函数没有增加任何新的运算能力(它自己不会求和、不会查找),但它让其他函数可以更优雅地协同工作。
从今天起,遇到任何重复引用同一段计算的场景,试着问问自己:“这里能不能用LET起个名字?
当你习惯用LET拆解逻辑后,你会发现:公式不再是堆砌出来的天书,而是你自己设计的一段干净流程。这比多背10个函数,更有价值。

如果你觉得这篇文章有用,欢迎点个「在看」,转发给身边被长公式折磨的朋友。你的Excel,值得更优雅。