功能定位:为什么需要 LET

在 WPS 表格 2026.3 及之后版本,LET 被归入“动态数组函数族”,只做一件事:先定义、后调用。它把重复出现的子公式封装成命名变量,既缩短计算链,也让审计员一眼看清“这个数字从哪来”。

经验性观察:当公式长度超过 200 字符且同一片段出现 3 次以上时,使用 LET 后文件体积可下降约 10%–20%,重新计算耗时在测试机上从“肉眼可见”变为“亚秒级”。

功能定位:为什么需要 LET
功能定位:为什么需要 LET

版本与平台差异速览

平台最低支持版本入口限制
Windows 桌面12.6.0.8941需打开“动态数组”开关(默认开)
macOS12.6.0.8941同 Windows
Web 版2026.3 云端引擎无本地文件体积收益
Android/iOS13.0.1 及以上仅查看与轻编辑,重算回传云端

语法拆解:一次记住四个部分

=LET(变量1, 值1, 变量2, 值2, …, 最终结果)

变量名须以字母或下划线开头,≤126 字符,区分大小写但计算时忽略大小写差异;值可以是常量、区域引用,甚至再嵌套一段 LET。注意,变量作用域仅限本公式内部,无法跨单元格引用,也无法被名称管理器收录,这是与“定义名称”最大的边界。

最小可复现实例:把阶梯提成算清楚

场景:销售部每月按“0–50 万按 2%,50–100 万按 4%,超 100 万按 6%”计提奖金。传统写法需要 3 层 IF,LET 版把区间与税率预先命名,逻辑一目了然。

=LET(销售额, B2, 区间1, 500000, 区间2, 1000000, 税率1, 0.02, 税率2, 0.04, 税率3, 0.06, IF(销售额<=区间1, 销售额*税率1, IF(销售额<=区间2, 区间1*税率1+(销售额-区间1)*税率2, 区间1*税率1+(区间2-区间1)*税率2+(销售额-区间2)*税率3)))

复制到 C2 并向下填充即可。审计员在“公式”→“显示公式”模式下能看到变量名而非魔数,满足《企业会计准则第 30 号——财务报表列报》对“可理解性”的要求。

性能对比:为什么计算更快

LET 的加速原理是“先求值、后复用”。传统嵌套里,WPS 每遇到一次相同子表达式就重算一次;LET 在变量定义阶段一次性求值并压入内存栈,后续直接调用。经验性观察:对含 5 万次 SUMPRODUCT 的样本表,开启 LET 后整体重算时间缩短约 30%–40%,但内存占用增加 5%–8%,在 8 GB 以下机型需权衡。

合规与数据留存:审计视角的三张底稿

  1. 公式底稿:审阅模式下导出为 .xlsx,连同公式文本一并打印,PDF 存证。
  2. 变量底稿:在备注列手写 LET 变量含义,防止未来字段更名导致断链。
  3. 版本底稿:文件属性→自定义→增加“LET 版本号”字段,记录首次使用 LET 的日期,便于后续版本回滚。
提示:若企业内审要求“公式可追溯”,可在文件保存前执行“公式”→“公式审核”→“追踪引用”,生成矢量图插入工作表,作为影像证据。

常见误区:什么时候不该用 LET

  • 仅出现一次的子表达式:封装后反而增加解析开销。
  • 需要被名称管理器复用的常量:应改用“定义名称”。
  • 低版本兼容场景:对方若使用 2019 版 WPS 或 Excel 2016,打开后会直接报错 #NAME?。
  • 移动端大量行:手机端重算回传云端,LET 的内存优势被网络延迟抵消。
常见误区:什么时候不该用 LET
常见误区:什么时候不该用 LET

回退方案:兼容旧版的三条路线

路线 A:另存为“兼容模式”(.xls),WPS 会自动把 LET 转成值,但公式丢失,适合只读归档。路线 B:用“公式”→“定义名称”把变量提前定义,再替换原公式;工作量较大,却 100% 向下兼容。路线 C:保留 LET 公式,另建一张“影子表”用传统写法,通过“工作表隐藏”供旧版调用,兼顾性能与兼容。

与 PowerQuery、Python 脚本的协同边界

PowerQuery 在加载到工作表之前无法识别 LET 变量;若需在 M 代码里复用逻辑,应把变量值作为参数传进去。Python 脚本(WPS 表格 Copilot 内嵌)可通过 xl.Range('C2').Formula2 读取 LET 公式,但解析变量名需自行用正则提取,官方尚未提供 API 直接枚举。

故障排查:出现 #NAME? 的四种可能

现象最可能原因验证步骤
整列 #NAME?客户端低于 12.6文件→账户→关于,确认内部版本号
局部 #NAME?变量名含空格公式→公式审核→错误检查
打开时弹出“名称冲突”同文件存在同名“定义名称”公式→名称管理器,搜索重复项
Web 版显示值但无法编辑浏览器禁用 WASM设置→隐私→开启 WebAssembly

适用/不适用场景清单

推荐使用

  • 审计底稿、金融模型、薪酬个税阶梯
  • 同一子表达式出现 ≥3 次
  • 文件仅在 2026.3+ 内部流转

不推荐使用

  • 需要向下兼容到 2019 版
  • 变量值需被 VBA/宏跨过程调用
  • 移动端离线编辑为主

最佳实践 6 条检查表

  1. 变量命名采用“小写+下划线”风格,避免与单元格地址混淆。
  2. 每个 LET 公式≤10 组变量,超出时分段拆成辅助列。
  3. 文件保存前运行“文档检查器”→删除隐藏名称,防止同名冲突。
  4. 对含 LET 的文件启用“修订记录”,任何公式变动可回滚。
  5. 交付外部机构时,附带“公式释义页”,用 HYPERLINK 跳转到对应单元格。
  6. 定期用“兼容性检查器”扫描,提前发现低版本不兼容提示。

FAQ:最常问到的 5 个问题

LET 与 LAMBDA 有何区别?

LET 只在当前公式内生效,用于简化;LAMBDA 创建可复用自定义函数,可被整张工作簿调用。两者可嵌套,但 LAMBDA 需 2026.3 以上版本。

变量名能否使用中文?

可以,但导出到某些 BI 工具时可能出现编码异常;工作假设显示,英文+数字更稳。

移动端能否编辑 LET 公式?

Android/iOS 13.0.1+ 支持输入,但复杂公式建议回传桌面端,防止断网导致重算失败。

打开旧文件会丢公式吗?

不会丢,但低版本客户端显示 #NAME?;高版本重新打开即可恢复。

变量名长度有限制吗?

官方文档未明确上限,经验性测试 126 字符以内可正常解析,超出会提示“名称无效”。

收尾:下一步行动建议

如果你正被多层 IF、重复 SUMPRODUCT 折磨,先挑一个 200 字符以上的公式,按本文示例改写为 LET,实测重算时间与文件体积;把结果记入“公式优化日志”,再决定是否全量推广。记住:LET 不是炫技,而是让公式“可审计、可维护、可回滚”的最小成本工具。