LET 函数¶
函数概述¶
LET 函数用于在公式内部定义变量并复用这些变量的计算结果,从而让公式更易读、可维护,并在重复计算较多时提升计算效率。它特别适合把“很长的中间结果”“重复出现的表达式”“复杂条件分支”先命名,再在最终表达式中引用。
常见用途包括:
- 复用重复计算(例如同一个筛选结果、同一个范围统计)
- 将长公式拆成“命名步骤”,提升可读性
- 让公式更易修改(只改变量定义即可)
基础语法¶
语法要点:
- 变量以“名称 + 值”成对出现:
name1, value1 - 最后一个参数必须是最终计算表达式
calculation - 变量名在 LET 作用域内有效,可在后续的 value 或 calculation 中引用
参数说明¶
| 参数 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| name1 | 文本/名称 | 必需 | 第一个变量名(建议用有含义的名字) |
| value1 | 任意表达式 | 必需 | name1 对应的值或计算表达式 |
| name2, value2… | 名称+表达式 | 可选 | 可继续定义更多变量,后定义的可引用前定义的 |
| calculation | 表达式 | 必需 | 最终返回结果的计算表达式,可引用前面所有变量 |
补充说明(实用规则):
- 变量名不区分大小写(例如
x与X视为同名) - 变量名不能与同一 LET 内已有变量重复(重复会导致后续引用混淆或报错)
- value 可以是常量、单元格引用、函数结果、数组结果等
基础用法示范¶
示例1:给中间结果命名¶
需求:计算“数量 × 单价 × (1-折扣)”,让公式更清晰。 假设:数量在 A2,单价在 B2,折扣在 C2。
思路:
qty/price/disc分别命名- 最后一段只做最终表达式,阅读成本更低
示例2:避免重复计算¶
需求:求 A2:A100 的平均值,并计算每个值与平均值的差(仅返回差的总和示例)。
普通写法可能会把 AVERAGE(A2:A100) 写很多次。
要点:
avg只算一次- 后面直接复用,提高可读性与性能(尤其在大型表格中更明显)
示例3:配合IF写“可维护”的条件逻辑¶
需求:根据分数判断等级:
=90 为 A,>=80 为 B,>=60 为 C,否则 D。分数在 A2。
优化点:
- 只引用一次
A2,后续统一用s - 以后分数来源变更(例如改成
B2)只需改一处
示例4:配合动态数组(FILTER)复用结果¶
需求:筛选“部门=销售”的员工姓名并统计人数。 假设:姓名在 A2:A100,部门在 B2:B100,销售条件为“销售”。
说明:
list是筛选后的姓名列表(动态溢出数组)ROWS(list)统计筛选结果行数HSTACK将“名单”和“人数”并排输出(人数会重复显示在每行右侧,若只想单独显示人数,可改为只返回ROWS(list))
仅返回人数的写法:
总结¶
LET 的核心价值是:在公式内部“先命名、再计算”。它能把复杂公式拆成清晰步骤,减少重复计算,并显著提升可维护性。实际写作建议:
- 变量名尽量语义化(如
avg、qty、salesList) - 先定义“重的计算/重复的表达式”,最后用 calculation 输出最终结果
- 与 IF、FILTER、XLOOKUP 等函数搭配时,LET 往往能把公式质量提升一个等级