不编程!用 Excel 函数就能实现递归运算

deer332025-09-27技术文章25

“公式越写越长,老板的脸越来越黑。

同事把 300 行嵌套 IF 甩给我时,脑子里就蹦出这句话。

那一刻,真想把 Excel 扔进回收站。

LAMBDA 就是救命绳。

它像给 Excel 开了外挂:把 20 行公式缩成 3 个字母,还能递归。

阶乘?

以前得写 =IF(A1=0,1,A1FACT(A1-1)),现在直接 =阶乘(n)。

定义一次:

=LAMBDA(n,IF(n<2,1,n阶乘(n-1)))

扔进“名称管理器”,全表通用。

累加更离谱。

把乘号换成加号,=累加(100) 秒出 5050。

有人吐槽:这不就是 SUM(SEQUENCE())?

但 LAMBDA 能塞进 BYROW,批量算每行累计,SUM 做不到。

财务小姐姐最嗨的场景:月底 200 张表,每行算最大最小。

以前 Ctrl+Shift+↓ 拖公式,手抖就崩。

现在:

=BYROW(数据, LAMBDA(r, MAX(r) & "/" & MIN(r)))

回车,整列自动出结果,咖啡还没泡好。

怕递归炸电脑?

加个 LET:

=LAMBDA(n, LET(m, n-1, IF(m<1,1,n阶乘(m))))

中间变量 m 只算一次,速度肉眼可见地快。

有人把 LAMBDA 存进模板,全公司共享。

新人打开文件,直接 =税率(收入) 就能算个税,再也不用翻 VLOOKUP大全。

微软最近还悄咪咪上线 JavaScript 通道,LAMBDA 能调 JS 函数。

隔壁数据组用它爬汇率,Excel 秒变轻量爬虫。

一句话:别再堆叠公式了。

把重复逻辑封成 LAMBDA,Excel 才真正成了“可编程表格”。

今晚试试?

先定义一个“中文星期”:

=LAMBDA(d, TEXT(d, "aaa"))

以后打卡表直接 =中文星期(日期),老板再也挑不出格式毛病。