Excel LET函数实战:用变量定义告别重复计算,提升报表效率
作者:本站 来源:本站
2026-05-10 21:01 537阅读

你是否经历过这样的职场至暗时刻:深夜十一点,老板让你改一份半年前的报表逻辑。你点开那个长达10行、嵌套了8层括号的=IF(SUMIFS(...)),瞬间头皮发麻。这哪是公式,这是天书。

绝大多数Excel用户还停留在“单元格引用”的初级阶段,而聪明的用户已经借助LET函数迈入了“变量编程”的现代世界。
今天我们不谈基础操作,只讲底层逻辑。这篇文章将彻底刷新你对Excel的认知。
一、 为什么你的Excel运行缓慢?
在介绍LET之前,我们需要了解一个痛点:重复计算(Volatile Calculation)。
传统Excel公式是“直来直去”的。如果公式中有一段复杂计算(比如VLOOKUP大范围数据)出现了3次,Excel就会重复计算3遍。数据量小时还好,一旦达到数万行,表格很容易卡顿。
LET函数的核心逻辑只有一个:定义变量。
将重复的计算结果存储到“内存变量”中,随用随取,只计算一次。
二、 硬核案例集:从“表哥表姐”进阶为“表神”
案例 1:告别“复读机”式计算
场景:计算产品溢价率。
旧写法:
=(A2*B2+A2*C2)/(A2*D2)
这里A2被调用了三次,逻辑混乱。
LET 重构:
=LET(
销量, A2,
成本, B2,
运费, C2,
定价, D2,
(销量*成本 + 销量*运费) / (销量*定价)
)
新增干货:
注意这里的变量名本身就是注释。即使半年后再看,(销量*成本)也比A2*B2直观得多。这就是自文档化公式。
案例 2:财务人的救星——动态加权平均
场景:计算库存动态成本,数据随时增减。
痛点:传统公式引用固定区域,新增行后公式不自动更新。
LET 高阶写法:
=LET(
Qty, OFFSET(C2,0,0,COUNTA(C:C)-1),
Price, OFFSET(D2,0,0,COUNTA(D:D)-1),
Total_Amount, SUMPRODUCT(Qty, Price),
Total_Qty, SUM(Qty),
Total_Amount / Total_Qty
)
深度解析:
利用OFFSET+COUNTA配合LET,实现了动态数组范围。无论你在C列下面新增多少行数据,平均成本都会自动更新,无需手动修改公式范围。这是很多财务分析师都不知道的隐藏技巧。
案例 3:逻辑判断的“代码级”优雅
场景:根据KPI得分评级,且规则经常变动。
旧写法:
=IF(AND(A2>90,B2>80),"S",IF(AND(A2>70,B2>60),"A","B"))
逻辑稍微复杂一点,括号就能让你头晕。
LET 重构:
=LET(
业绩, A2,
态度, B2,
S级线, 90,
A级线, 70,
IFS(
业绩>S级线, "S",
业绩>A级线, "A",
TRUE, "B"
)
)
新增干货:
将阈值(S级线、A级线)也定义为变量。下次老板说“标准提高到95”,你只需要修改数字90处,而不是在IF堆里四处寻找。这才是可维护性。
案例 4:LET + XLOOKUP 性能暴增方案
场景:大批量反向查找。
痛点:XLOOKUP虽然好用,但在超大表中多次调用会导致卡顿。
性能优化写法:
=LET(
查找值, A2,
数据源, A:C,
行号, XMATCH(查找值, INDEX(数据源,,1)),
INDEX(数据源, 行号, 2) + INDEX(数据源, 行号, 3)
)
深度解析:
XMATCH只负责定位(返回位置),INDEX负责取值。相比直接使用两个XLOOKUP,这种方法减少了函数调用堆栈,在处理10万行以上数据时,速度提升可达300%。
三、 总结:Excel的终局思维
学会LET,不是为了炫技,而是为了降本增效。
- 降低沟通成本:你的表格接手人能秒懂逻辑。
- 降低出错概率:变量定义一次,杜绝手滑引错单元格。
- 提升运行效率:减少重复运算,拯救老旧电脑。
建议: 打开你正在做的周报,找出最长的那个公式,试着把它拆成变量。一旦上手,你就再也回不去那个满屏$A$1的时代了。
附图文教程





课后随堂测验(测测你真的懂没懂)
- 关于LET函数的最大优势,下列说法正确的是? A. 可以让公式颜色变得好看 B. 可以将中间计算结果存储为变量,避免重复计算 C. 只能用于数学计算,不能用于文本处理 D. 必须配合VBA才能使用
- 在LET函数中,语法结构通常是 =LET(变量1, 值1, 变量2, 值2, ... , [最终结果])。如果要在公式中定义3个变量,那么逗号分隔符至少需要多少个? A. 3个 B. 5个 C. 7个 D. 9个
- 针对文中提到的“10万行数据查找”案例,为什么使用 LET+XMATCH+INDEX 比单纯用 XLOOKUP 更快? A. XLOOKUP在新版本Excel中被禁用了 B. 前者只进行了一次查找定位,后者进行了两次完整查找 C. INDEX函数比XLOOKUP更高级 D. 因为用了数组公式
答案:
- B
- C (3个变量需要3对赋值,加上1个结果,共7个逗号:var1,val1,var2,val2,var3,val3,result)
- B
(完)
上一篇
下一篇
相关阅读