LET函数可提升Excel公式清晰度与执行效率。它通过一次性定义并复用中间计算结果,避免重复运算,支持多层嵌套、逻辑封装、动态数组优化及作用域隔离,适用于Microsoft 365或Excel 2021及以上版本。

如果您在Excel中频繁使用多层嵌套公式(如嵌套IF、INDEX-MATCH、FILTER等),公式不仅难以阅读和维护,还可能因重复计算拖慢工作表响应速度。LET函数可通过一次性定义并复用中间计算结果,显著提升公式的清晰度与执行效率。以下是实现该目标的具体操作步骤:
一、理解LET函数的基本语法与作用机制
LET函数允许在单个公式内部声明一个或多个名称及其对应值,并在后续计算中直接引用这些名称,从而避免对同一表达式多次求值。其结构为:LET(名称1, 值1, 名称2, 值2, ..., 计算表达式)。所有名称仅在当前LET公式内有效,不占用工作簿名称管理器空间,且Excel会智能缓存各名称的计算结果,减少重复运算开销。
1、打开Excel工作表,确保使用的是Microsoft 365或Excel 2021及以上版本(LET函数在此前版本不可用)。
2、确认公式所在单元格处于编辑状态,准备输入以=LET(开头的公式。
3、在括号内按“名称, 值”成对方式依次列出所需中间变量,末尾提供最终返回的表达式。
二、用LET替代重复的FILTER+SORT组合
当需要对同一数据源多次筛选并排序时,传统写法常导致FILTER函数被重复执行三次以上;而LET可将FILTER结果定义为一个名称,在SORT、INDEX等后续函数中直接调用,仅计算一次。
1、假设有销售数据在A2:C100区域,需提取“华东”地区销售额大于5000的记录,并按日期升序排列后取第1条姓名。
2、传统嵌套写法:=INDEX(SORT(FILTER(A2:C100,(B2:B100="华东")*(C2:C100>5000)),1,1),1,1)——其中FILTER被调用两次(SORT内一次,INDEX内隐式一次)。
3、改用LET写法:=LET(data,FILTER(A2:C100,(B2:B100="华东")*(C2:C100>5000)),INDEX(SORT(data,1,1),1,1))——FILTER仅执行一次,结果存入data名称供后续复用。
三、用LET封装复杂逻辑判断链
对于含多重条件分支的IF嵌套(如四层以上IF或IFS配合AND/OR),将各条件判断结果预先命名,可使主逻辑表达式简洁直观,并避免条件重复计算。
1、假设D2单元格需根据E2(部门)、F2(职级)、G2(绩效)输出评级,规则为:华东+高级+90分以上→“S”,华东+中级+85分以上→“A”,其余→“B”。
2、传统IFS写法需重复引用E2、F2、G2多次,且条件表达式冗长。
3、LET优化写法:=LET(dep,E2,lev,F2,score,G2,is_huadong,(dep="华东"),is_senior,(lev="高级"),is_mid,(lev="中级"),high_perf,(score>=90),mid_perf,(score>=85),IFS(is_huadong*is_senior*high_perf,"S",is_huadong*is_mid*mid_perf,"A",TRUE,"B"))——所有条件判断均只计算一次,主IFS部分仅作逻辑组合。
四、用LET加速动态数组与SEQUENCE联动
当结合SEQUENCE生成序列并用于ROW/INDEX偏移时,若SEQUENCE参数本身依赖复杂计算(如COUNTA+OFFSET推导范围长度),将其定义为LET名称可防止每次重算数组都重新评估该参数。
1、目标:从H2开始向下填充连续编号,编号总数等于I列非空单元格个数(I2:I1000)。
2、低效写法:=SEQUENCE(COUNTA(I2:I1000))——若该公式被拖拽至100行,COUNTA将被重复计算100次。
3、高效LET写法:=LET(n,COUNTA(I2:I1000),SEQUENCE(n))——COUNTA仅执行一次,n作为标量传入SEQUENCE,大幅提升整列计算速度。
五、嵌套LET实现多级中间变量隔离
对于超复杂场景(如财务模型中的多步折旧+税率叠加+汇率换算),可使用嵌套LET将不同计算层级分离,既保障可读性,又确保每层中间值仅计算一次。
1、设定J2为原始金额,K2为年份,L2为汇率,M2为税率,需先折旧(J2/K2),再乘汇率,最后扣税。
2、单层LET易造成命名冲突或过长:=LET(depr,J2/K2,conv,depr*L2,taxed,conv*(1-M2),taxed)。
3、嵌套LET增强模块性:=LET(depr,J2/K2,LET(conv,depr*L2,LET(taxed,conv*(1-M2),taxed)))——外层定义折旧,内层依次定义换算与计税,变量作用域清晰,调试时可单独查看任一层结果。










