Excel的LET 函数:给公式的中间步骤“起个名”
- 2026-11-08 18:10:37
适合人群:被长公式折磨过的办公族 · 全文约 2000 字,阅读需 5 分钟
你有没有干过这种事:一个公式写了一半,发现要引用同一个单元格,于是复制粘贴;IF 套 IF 再套 IF,套到屏幕都放不下;编辑栏的下拉箭头点开,光标在公式中间一闪一闪,像条贪吃蛇。
说句实话,这种公式不是写给人看的,是写给 Excel 看的。可问题是——三天后你自己也看不懂了。同事离职做交接,你点开他留下的表格,一条三百字符的公式横在面前,里头的 A2、B2、D2 谁是谁全靠猜。这时候你只想问一句:这写的都是什么玩意儿?
今天介绍一个专门治这病的函数:LET
一句话说清它的作用:在公式里给中间结果起个名字,先算好存起来,最后一步再用。
就像炒菜前先把葱切段、姜切片,分门别类码在盘子里,炒的时候直接抓,而不是切一刀、炒一下,再切一刀、再炒一下。
版本说明 LET 是微软 2020 年加进 Excel 的新函数,Microsoft 365 和 Excel 2021 及以后的版本都有,WPS 新版也能用。老版本(Excel 2019 及更早)暂时用不了,这个文末细说。
LET 的语法长这样:
=LET(名字1, 值1, [名字2, 值2, ...], 最终计算)
参数挨个说:
起名字有三条规矩,踩了会报错
1名字不能跟单元格地址撞车。叫 A1、B2 这种没戏,Excel 会当你是在引用单元格。叫中文名完全没问题,“销售额”“应纳税所得额”都能用。
2名字必须先起名、后使用。顺序乱了,公式直接罢工。
3名字只在这条公式内部有效。出了公式谁也不认识谁,也不会污染你的名称管理器,放心用。
公式短了 一眼望得到头 | 计算快了 中间结果只算一次 | 维护容易了 改一处就够 |
好处归拢起来就三条。下面上案例,一个比一个常用。
场景月底算销售提成。规则不复杂,写成公式就烦人——月销售额 ≥10000 提成 10%,5000 到 10000 之间提成 5%,5000 以下提成 0。假设销售额在 A2 单元格。
传统写法:
=IF(A2>=10000,A2*0.1,IF(A2>=5000,A2*0.05,0))
数一下,A2 出现了四次。哪天规则变了、或者销售额挪到了 B 列,你得小心翼翼改四处,漏改一个,全盘皆错。
LET 写法:
=LET(销售额,A2,IF(销售额>=10000,销售额*0.1,IF(销售额>=5000,销售额*0.05,0)))
“销售额”起一次名,后面随便用。假设小李这个月卖了 8600 元:
两种写法答案一样:8600 × 5% = 430 元。但 LET 版里,“销售额”三个字一眼就能看出每个数字在跟谁较劲。改规则也只改一处,手指头都轻松了。
场景你有一张商品表放在另一个 Sheet,名字就叫“商品表”,三列分别是编号、单价、库存。现在要根据 A2 单元格里的商品编号查库存,缺货就显示“缺货”。传统写法有个经典毛病——同一个 VLOOKUP 写两遍:
=IF(VLOOKUP(A2,商品表,3,0)>0,VLOOKUP(A2,商品表,3,0),"缺货")
什么意思呢?先查一遍看库存在不在,有货的话,再查一遍把库存值取出来。等于为了拿一个数,把整张商品表翻了两遍。数据一多,几千上万行下来,表格卡成幻灯片,按 F9 重算能去泡杯茶。
LET 写法,查一次,存起来,用两次:
=LET(库存,VLOOKUP(A2,商品表,3,0),IF(库存>0,库存,"缺货"))
假设 A2 是商品编号 P-1008,商品表第 3 列查出来是 350:
行数少的时候体感不明显。等你的表涨到一万行,两种写法的重算时间差,够你下楼拿个快递。
场景算工资。基本工资 8000 在 B2,加班费 1200 在 C2,五险一金按基本工资的 10.5% 扣,月收入超过 5000 的部分按 3% 扣个税。传统写法一条长龙:
=B2+C2-B2*0.105-MAX(B2+C2-B2*0.105-5000,0)*0.03
数字全是死的,想改基本工资,得从头找到尾,改到眼瞎。
LET 写法,每一步都起名,公式自己会说话:
=LET(基本工资,B2,
加班费,C2,
五险一金,基本工资*0.105,
应纳税所得额,基本工资+加班费-五险一金-5000,
个税,MAX(应纳税所得额,0)*0.03,
基本工资+加班费-五险一金-个税)
公式里的换行只是为了看得清,实际写的时候可以排成一行,也可以按 Alt+Enter 换行,Excel 认。
代进去算:基本工资 8000,加班费 1200,五险一金 840;应纳税所得额 3360;个税 100.8;到手 8259.2 元。
这公式拿给财务看,她不用问你一句,就能看懂每一步在干嘛。
一、版本要对。Excel 2019 及更早没有 LET,公式发过去,对方屏幕上会显示 #NAME? 错误。用 Microsoft 365 或 Excel 2021 以上版本,再升级 WPS 新版也行。
二、名字别乱起。叫“收入”“合计”“库存”都行,叫 A1 不行。
三、拿不准就先复制一份表格再改公式。LET 改错了顶多是个报错,Ctrl+Z 能解决一切,原表格不会少一块肉。
今晚下班前,翻出你手里最长的那条公式,数数里头同一个单元格地址重复出现了几次。三次以上的,都值得用 LET 拆一遍。
拆完你会回来谢我。
觉得有用,点个“赞”和“在看”
也转发给那个还在复制粘贴单元格地址的同事