不编程!用 Excel 函数就能实现递归运算
“公式越写越长,老板的脸越来越黑。
”
同事把 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"))
以后打卡表直接 =中文星期(日期),老板再也挑不出格式毛病。