Excel新函数LET是来救命的!从此告别重复套用难题,效率翻倍!

内容分享2天前发布
7 1 0

Excel公式天书太难懂?学会这个“神器”函数,复杂计算一键简化,效率翻倍!

告别公式嵌套地狱,让每个计算步骤都清晰可见

大家好,我是你们的Excel技能伙伴。你是否曾被层层嵌套、宛如天书的Excel公式折磨到头大?是否由于同一段计算重复出现,导致表格卡顿慢如蜗牛?

Excel新函数LET是来救命的!从此告别重复套用难题,效率翻倍!

今天,我要为你彻底解决这个痛点,隆重介绍Excel中一个革命性的函数——LET函数。它虽“年轻”,却足以改变你编写公式的思维方式,让效率与清晰度双双飞升。

01 传统公式的痛点:为什么我们需要LET?

长期以来,Excel函数最大的遗憾之一,就是缺少像编程语言那样的变量概念。这直接导致两大问题:

公式臃肿难懂:为了完成复杂逻辑,不得不进行多层函数嵌套,阅读和调试如同解谜

效率低下不堪:同一段计算在公式中重复出现多次,Excel就会老老实实重复运算多次,严重拖慢速度

特别是在处理大数据量时,重复计算会让整个工作簿变得异常缓慢。而LET函数的出现,正是微软给出的优雅解决方案

02 核心揭秘:LET函数到底是什么?

一句话概括:LET函数允许你在一个公式内部定义“变量”,最后再输出结果。

它的语法结构超级清晰:

=LET(变量名1, 值或计算1, 变量名2, 值或计算2, ..., 最终结果表达式)

看一个最简单的例子秒懂:

=LET(x, 10, x+1)

这个公式将返回11。x就是我们定义的变量,值为10,然后计算x+1。

这看起来平平无奇?它的真正威力在于处理复杂场景。

03 实战案例:四大场景,见证LET的颠覆性力量

场景一:告别重复计算,提升效率3-5倍

【任务】:根据成绩表查询某人成绩,≥60分显示成绩,否则显示“不及格”。

传统写法(低效)

=IF(VLOOKUP(D2,A:B,2,0)>=60, VLOOKUP(D2,A:B,2,0), "不及格")

痛点:VLOOKUP计算了两次。如果数据量巨大,这种重复就是性能杀手。

LET函数写法(高效优雅)

=LET(
    查询结果, VLOOKUP(D2, A:B, 2, 0),
    IF(查询结果 >= 60, 查询结果, "不及格")
)

优势:VLOOKUP只运算一次,结果存入“查询结果”变量,后续直接调用。公式更简洁,运行速度提升3-5倍

场景二:化繁为简,让复杂公式拥有“说明书”

【任务】:在多个工作表的海量数据中,查找指定人员的成绩。

传统嵌套公式(“地狱”难度)

=IFERROR(VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"财务部","销售部","IT部"}&"!a:a"),A2),{"财务部","销售部","IT部"}&"!a:b")),2,0),"查无")

LET函数写法(“说明书”式清晰)

=LET(
    _工作表列表, {"财务部","销售部","IT部"},
    _出现次数, COUNTIF(INDIRECT(_工作表列表 & "!a:a"), A2),
    _目标表, LOOKUP(1, 0/_出现次数, _工作表列表),
    _数据区域, INDIRECT(_目标表 & "!a:b"),
    _查询结果, VLOOKUP(A2, _数据区域, 2, 0),
    IFERROR(_查询结果, "查无")
)

颠覆性优势逻辑自上而下,完全符合人类的阅读和思考习惯,每一步的目的清清楚楚。

场景三:财务数字小写转中文大写优化

这是一个经典案例,展示LET函数如何简化极其复杂的公式:

优化前(公式冗长重复):

=TEXT(INT(I9),"[dbnum2]")&"元"&IF(INT(I9*10)-INT(I9)*10=0,"",TEXT(INT(I9*10)-INT(I9)*10,"[dbnum2]")&"角")&IF(INT(I9*100)-INT(I9*10)*10=0,"整",TEXT(INT(I9*100)-INT(I9*10)*10,"[dbnum2]")&"分")

使用LET优化后

=LET(
    x, INT(I9),
    y, INT(I9*10),
    z, INT(I9*100),
    t, "[dbnum2]",
    TEXT(x,t)&"元"&IF(y-x*10=0,"",TEXT(y-x*10,t)&"角")&IF(z-y*10=0,"整",TEXT(z-y*10,t)&"分")
)

效果:公式可读性大幅提升,重复计算次数减少,维护起来更加容易。

场景四:动态数组过滤与处理

在处理动态数组时,LET函数展现出其独特优势:

=LET(
    a, FILTER(A2#, INDEX(A2#,0,1)="Investment 1"),
    XIRR(INDEX(a,0,3), INDEX(a,0,2))
)

这个公式先过滤出特定投资的数据,然后计算XIRR(内部收益率),避免重复执行FILTER操作

04 高手技巧:让你的LET函数更专业

1. 变量命名巧用下划线

如_res、_data。这不仅能快速区分变量和单元格引用,输入时还能触发变量名自动补全,提升编写速度。

2. 公式换行排版

在编辑栏按Alt + Enter即可换行,让多行公式结构一目了然,这不影响计算。

3. 性能优化技巧

将公式中重复多次的计算片段抽象为单独变量,可以避免多次计算导致的速度降低。

4. 结合LAMBDA等新函数

LET函数可以与LAMBDA、MAP、REDUCE等函数协同工作,提升团队构建标准运算公式的能力,应对动态数据量的变化。

05 重大提示:兼容性与适用场景

LET函数目前支持 Excel 2021、Microsoft 365及最新测试版的WPS。如果你还在使用旧版本,是时候思考升级了,它带来的效率提升绝对物超所值。

值得注意的是,一个LET函数最多支持126组名称和变量值,这完全能满足绝大多数复杂场景的需求。

06 实际行业应用案例

财务部门:利用LET函数自动生成报表,节省人工核对时间

人力资源部门:通过变量来细化考核公式,使员工评估更加透明

销售分析:设置变量使销售动态排行榜和业绩对比清晰易得

结语

LET函数不仅仅是一个新函数,它更是一种编写Excel公式的新范式。它将公式从难以维护的“一次性代码”,变成了结构清晰、可复用、易调试的“模块化脚本”。

掌握LET,意味着你在处理复杂数据问题时,拥有了更强劲、更优雅的工具。从今天开始,尝试在你的下一个公式中使用LET,亲身感受它带来的改变吧!


三道测试题

题目1:将以下传统公式转换为使用LET函数优化后的公式:

=IF(VLOOKUP(A2, B:C, 2, FALSE) > 100, VLOOKUP(A2, B:C, 2, FALSE) * 1.1, VLOOKUP(A2, B:C, 2, FALSE) * 0.9)

题目2:写出一个使用LET函数的公式,计算A1单元格值的平方加上B1单元格值的平方,最后求平方根。

题目3:如何使用LET函数简化以下复杂公式,使其更易读?

=IF(LEN(SUBSTITUTE(TEXTAFTER(TEXTBEFORE(R2,"m"),"_"),"×","*"))<=10, SUBSTITUTE(TEXTAFTER(TEXTBEFORE(R2,"m"),"_"),"×","*")&"*c", TEXTAFTER(SUBSTITUTE(TEXTAFTER(TEXTBEFORE(R2,"m"),"_"),"×","*"),"*",2)&"*"&TEXTBEFORE(SUBSTITUTE(TEXTAFTER(TEXTBEFORE(R2,"m"),"_"),"×","*"),"*",2))

答案区

答案1

=LET(
    lookupResult, VLOOKUP(A2, B:C, 2, FALSE),
    IF(lookupResult > 100, lookupResult * 1.1, lookupResult * 0.9)
)

答案2

=LET(
    a, A1,
    b, B1,
    SQRT(a^2 + b^2)
)

答案3

=LET(
    a, SUBSTITUTE(TEXTAFTER(TEXTBEFORE(R2,"m"),"_"),"×","*"),
    IF(LEN(a)<=10, a&"*c", TEXTAFTER(a,"*",2)&"*"&TEXTBEFORE(a,"*",2))
)

点赞、收藏、关注我,下次带你玩转 Excel 的“函数工厂”——LAMBDA,教你用普通公式打造属于自己的自定义函数!

(完)

© 版权声明

相关文章

1 条评论

  • 头像
    二黑猪咪面包绒 投稿者

    打工人必学!Excel的LET函数详解,给公式装上“记忆芯片”,从此报表又快又稳!

    无记录
    回复