夜雨聆风学习资料网

ARTICLE · 1155358

EXCEL改一处崩三处?Let高级函数教学(完整教程)

EXCEL改一处崩三处?Let高级函数教学(完整教程)

上周同事接手一张老报表,改个提成比例,一段公式崩了三处。查了半小时,原因特别朴素:同一段 Sum 求和,在公式里写了三遍,改了一处,漏了两处。

我以为得拆成三个辅助列分开算,结果一个 Let 函数,全装进了一格里。

长公式的病根不是长,是重复。

治这个毛病,Excel 有个专门的函数——Let:给公式里的中间结果起个名字,写一遍,用到哪儿都行。

一、公式是怎么变长的

先看这段提成公式:

=If(Sum(B2:B6)>50000, Sum(B2:B6)*0.1, Sum(B2:B6)*0.05)

一行里立着三个一模一样的 Sum(B2:B6)。

现在要改取数范围,三处得一起动手,漏一处,数字就对不上——这种错还不报错,直接把错的数送进汇报。

公式越长,重复藏得越深。三层嵌套往里一包,接手的人只能从头数括号。

二、Let是什么:给算式起名字

Let 的思路很朴素:把重复计算的部分拎出来,起个名字,后面直接用名字。

语法就一个套路:Let(名字1, 计算式1, 名字2, 计算式2, 最终结果)。前面是成对的「名字,值」,最后一格写返回什么。

名字随便起,中文都行,起得越像人话越好读。上限也宽裕:一个 Let 最多定义 126 对名字,日常公式用不完。中间那段计算只算一次,大表上还省力。

给中间量起名字,就是给公式写口径。

三、3步改造:拎出来、起名字、收尾

第一步,找出公式里重复出现的计算块;第二步,拎到最前面起个名字;第三步,原位置换成名字,公式最后写最终结果。

改造完是这样:

=Let(总销售额, Sum(B2:B6), If(总销售额>50000, 总销售额*0.1, 总销售额*0.05))

拆解:外层 If 判断档位,内层的总销售额是 Let 起的名字,整段只算一次。三个 Sum 变一个,改取数范围只动一处。

四、提成公式一眼看懂

在 G2 单元格输入改造后的公式,回车即可拿到 8000。

名字本身就是注释。接手的人不用数括号,看名字就知道每段算的是什么。

改口径的时候只动 Let 那一行,下面全是名字,不碰。

五、含税价倒算,一段带注释

再来一段两层的:

=Let(含税价, A2, 税率, B2, 不含税价, 含税价/(1+税率), Round(不含税价, 2))

拆解:先外后内——Round 负责保留两位小数;不含税价是中间名字,由含税价除以一加税率算出;税率单拎出来,换税目只改这一格的值。

六、三个坑,先知道少绕路

  • 名字别跟单元格地址撞车:起成 A1、B2 这种,直接报错,加个前缀就绕开
  • 名字不带引号:裸写才算名字,套上引号会被当成文本
  • 版本是门票:Let 要 Microsoft 365 或 Excel 2021 及以上,老版本打开显示 #Name? 错误,发给同事前先问一句版本

七、什么时候别用

两三个参数的短公式,硬套 Let 是画蛇添足,名字起的比公式还长。

它真正的主场是公式超过两层嵌套、或者同一段计算反复出现的时候。判断标准就一条:这段公式,你敢不敢直接改?敢,就别动;不敢,就拆名字。

你手上那张最长的公式,现在敢直接改吗?

相关学习资料