LET函数是WPS表格新增的函数之一,它用于在公式中定义变量并为其赋值,再通过变量名引用计算结果,实现公式简化、避免重复计算、提升可读性和运算效率。可用于通过定义公式内的名称来存储中间计算结果和值,将计算结果分配给名称,这些名称仅在LET函数作用域内适用。
语法:=LET(名称1,名称值1,计算或名称2,…)
参数说明:
[名称1]:变量名称,指的就是定义名称,可以是中文可以是字母等(如总分、折扣率,需符合WPS表格命名规则,不能以数字开头)。
[名称值1]:变量对应的值或计算结果,可以是单元格,可以是单元格区域,可以是函数公式等(如A2:A10、SUM(B2:B10))。
[计算或名称2]:最终计算表达式,必须包含LET里已定义的一个或若干名称的函数公式等。
以上是对LET函数的语法和参数的具体介绍,下面通过一些应用实例来具体介绍它在WPS表格中的应用场景。
1.简化多步骤计算(总分+平均分)
需求:计算学生的“总分”和“平均分”,避免公式中重复引用数据区域。
数据示例:
公式:=LET(总分,B2:B4+C2:C4,平均分,总分/2,HSTACK(A2:A4,总分,平均分))
解释:通过定义“总分”变量,避免在“平均分”公式中重复计算B2:B4+C2:C4。
2.避免重复计算(折扣价计算)
需求:根据“原价”和“折扣率”计算“折后价”和“节省金额”,避免重复引用原价。
数据示例:
公式:=LET(原价,B2:B4,折扣价,原价*C2:C4,节省金额,原价-折扣价,VSTACK({“商品”,”折扣价”,”节省金额”},HSTACK(A2:A4,折扣价,节省金额)))
解释:“原价”变量仅计算一次,后续“折后价”和“节省金额”直接引用,减少运算量。
3.名称值为函数公式
需求:对二维表格数据进行转换为一维表格。
数据示例:
公式:=LET(fx,LAMBDA(x,TOCOL(IF(B2:D4<>””,x,1/0),3)),HSTACK(fx(A2:A4),fx(B1:D1),fx(B2:D4)))
解释:定义了一个名为fx的LAMBDA函数,并在后续计算中重复调用它。HSTACK函数将上述三个结果水平堆叠,生成最终的三列输出。
4.排名计算与动态排序(RANK+SORT)
需求:计算“销售额”降序排名,并按排名升序排列数据。
数据示例:
公式:=LET(数据,A3:D8,工资,INDEX(数据,,4),排名,RANK(工资,工资,0),SORT(HSTACK(数据,排名),5,1))
解释:排名,变量独立计算,避免在排序时重复调用。
5.多变量统计(求和+计数+平均)
需求:一次性计算“销量”列的总和、计数、平均值,变量化多指标统计。
数据示例:
公式:=LET(工资汇总,SUM(D3:D8),计数,ROWS(D3:D8),平均,工资汇总/计数,VSTACK({“工资总和”,”人数”,”平均工资”},HSTACK(工资汇总,计数,平均)))
解释:通过变量一次性存储多个统计结果,最后用VSTACK和HSTACK来堆叠输出结果。
6.模拟FOR循环
需求:从5开始逐步减1,每次把这个数加入结果数组。
数据示例:
公式:=LET(fx,LAMBDA(x,y,IF(x=0,DROP(y,1),fx(x-1,VSTACK(y,x)))),fx(5,””))
解释:生成5的倒数的序列数。
7.将表格倒置过来
需求:将一个表格的数据整体倒转过来。
数据示例:
公式:=LET(fx,LAMBDA(x,IF(ROWS(x)=1,x,VSTACK(fx(DROP(x,1)),TAKE(x,1)))),fx(A2:B16))
解释:生成一个倒置的表格数据。
8.来一个中式排名
需求:对成绩前3名(含第3名)进行排名。
数据示例:
公式:=MAP(B2:B10,LAMBDA(x,LET(y,SUMPRODUCT((B2:B10>=x)/COUNTIF(B2:B10,B2:B10)),IF(y>=4,””,y))))
解释:LET(y, SUMPRODUCT(…), IF(…)),作用:通过LET定义变量y(存储中间计算结果),简化公式逻辑。根据y的值判断输出内容:若y≥4(大于等于x的唯一值数量≥4),返回空字符串(””);否则返回y(唯一值数量)。
9.提取数据为两列
需求:前面的数字是学生的序号,后面是这批学生对应的积分,但是由于填写的不规范,实际比较乱(模拟的最乱情况),现在想整理成一维表,一列学号,一列积分。
数据示例:
公式:=LET(t,TOCOL(REGEXP(A1,”\d+”)),IF({1,0},DROP(t,-1),TAKE(t,-1)))
解释:公式用于从A1单元格文本中提取所有数字,并将其拆分为两列结果:第一列:提取的所有数字(除最后一个数字外);第二列:提取的最后一个数字。
10.汇总多个工作表
需求:对1—3月表数据进行汇总(月表格式一致)
数据示例:
公式:=LET(x,VSTACK(‘1月:4月’!A2:B20),GROUPBY(TAKE(x,,1),TAKE(x,,-1),SUM,,,,TAKE(x,,1)<>””))
解释:公式通过LET函数定义变量,结合VSTACK合并多表数据,最终使用GROUPBY分组聚合,实现跨工作表数据的汇总分析。整体逻辑为:合并数据→分组求和→筛选非空行。
通过以上场景可见,LET函数通过变量定义解决了传统公式的“可读性差、重复计算、逻辑复杂”三大痛点,是WPS表格中“公式模块化”的核心工具,尤其适合处理多步骤、复杂逻辑的数据计算,赋予表格“灵魂级”的灵活性与效率,是数据分析师的必备技能。