Excel 函数 LAMBDA 实战:告别重复公式
Excel 函数 LAMBDA 实战:告别重复公式
你有没有遇到过这种情况?
同一个公式,在 Excel 里复制了几十遍,每次就改个参数? 写了个超复杂的嵌套公式,回头再看完全看不懂自己写了啥? 想把自己常用的计算逻辑封装起来,结果只能靠 VBA?
如果有,那今天这个函数你必须了解一下——LAMBDA。
这货是 Excel 2021 和 Microsoft 365 新增的函数,号称 Excel 最强函数之一。简单说,它能让你自己定义函数,不用写代码,不用 VBA,就像 Excel 内置函数一样随便用。
01 LAMBDA 到底是啥?
用人话来说,LAMBDA 就是一个**「函数的函数」**。
它允许你把一段公式逻辑封装起来,给它起个名字,然后像调用内置函数一样调用它。
比如你经常要算「销售额 = 单价 × 数量 × (1-折扣率)」,以前每次都得写一遍这个公式。现在用 LAMBDA,一次定义,随时调用。
语法很简单:
=LAMBDA(参数1, 参数2, ..., 计算公式)
定义完不能直接用,得给它起个名字。步骤是:
-
打开「名称管理器」(公式 → 名称管理器 → 新建) -
起个名字,比如「算销售额」 -
在「引用位置」写 =LAMBDA(单价,数量,折扣,单价数量(1-折扣))
然后在单元格里直接写 =算销售额(A2,B2,C2) 就行。
02 实战案例:5 个常用场景
光说不练假把式,来看看 LAMBDA 能搞定哪些实际问题。
案例 1:把中文数字转成阿拉伯数字
相信很多人遇到过这种崩溃时刻:表格里有个「一千二百三十四」,你得手动改成 1234。
用 LAMBDA 可以这样做:
在名称管理器里新建,名字叫「中文转数字」,引用位置写:
=LAMBDA(文字,LOOKUP(LEFT(文字,2),{"一千","1";"一千一","11";"一千二","12";"一千三","13";"一千四","14";"一千五","15";"一千六","16";"一千七","17";"一千八","18";"一千九","19";"一千零","10";"二千","2";"三千","3";"四千","4";"五千","5";"六千","6";"七千","7";"八千","8";"九千","9"},LOOKUP(LEN(文字),{1,2,3,4},{1,10,100,1000})*LOOKUP(VALUE(RIGHT(文字)),{0,1,2,3,4,5,6,7,8,9},{0,1,2,3,4,5,6,7,8,9}))
然后直接用 =中文转数字(“一千二百三十四”) 就能得到 1234。
案例 2:计算个人所得税
这个太实用了!个税是累进税率,公式特别复杂:
=LAMBDA(收入,收入-5000-社保-公积金, LET(应纳税所得额,收入-5000-社保-公积金,速算扣除数,IF(应纳税所得额<=0,0,IF(应纳税所得额<=3000,IF(应纳税所得额<=15000,0,IF(应纳税所得额<=4500,105,IF(应纳税所得额<=9000,555,IF(应纳税所得额<=35000,1005,IF(应纳税所得额<=55000,2775,IF(应纳税所得额<=80000,5505,15105)))))))),应纳税所得额*IF(应纳税所得额<=3000,0.03,IF(应纳税所得额<=12000,0.1,IF(应纳税所得额<=25000,0.2,IF(应纳税所得额<=35000,0.25,IF(应纳税所得额<=55000,0.3,IF(应纳税所得额<=80000,0.35,0.45))))))-速算扣除数))
定义成「个税计算」之后,=个税计算(20000) 直接出结果,爽!
案例 3:多条件查找
VLOOKUP 只能从左往右查,XLOOKUP 虽然强,但有时候多条件查找还是得靠 LAMBDA:
=LAMBDA(查找值,查找列,返回列,INDEX(返回列,MATCH(1,(查找列=查找值)*1,0)))
定义成「精确查找」后,=精确查找(A2, D:D, F:F) 就能搞定。
案例 4:日期处理神器
经常要判断某个日期是周几、是不是周末、下个工作日是哪天:
=LAMBDA(日期, IF(WEEKDAY(日期,2)>5, 日期+8-WEEKDAY(日期,2), 日期+1))
定义成「下个工作日」,=下个工作日(TODAY()) 直接算出明天或者是周一。
案例 5:文本提取黑科技
从一段文字里提取数字、字母、中文:
=LAMBDA(字符串,REGEX(字符串,"[0-9]+"))
定义成「提取数字」,=提取数字(“订单号A123456B789”) 返回「123456」。
(注:REGEX 是 Microsoft 365 新函数,配合 LAMBDA 效果拔群)
03 为什么要用 LAMBDA?
说白了就三个理由:
1. 告别复制粘贴 同样的公式逻辑定义一次,到处调用。参数一改,全部更新,爽!
2. 公式可读性暴增 以前写个嵌套 10 层的公式,自己都看不懂。现在拆成几个 LAMBDA 函数,逻辑清晰得一匹。
3. 可维护性拉满 要改逻辑?改一处就行,不用满表格找哪里还有遗漏。
而且 LAMBDA 还能递归调用自己!自己调用自己这个特性,让很多以前做不到的事情成为可能。
04 怎么上手?
别被吓到,上手其实很简单:
-
先从简单的开始 找一个你常用的公式片段,比如算毛利率啥的,先试着用 LAMBDA 封装一下。
-
用好「名称管理器」 命名的时候用中文或者好记的英文,比如「毛利率」「利润计算」,用的时候跟内置函数没区别。
-
善用 LET 函数 LAMBDA 里配合 LET 函数(给中间结果起名字),公式可读性直接起飞。
-
参考微软官方文档 微软官网有 LAMBDA 的详细说明和更多案例[1]。
05 总结
LAMBDA 函数就是 Excel 里的「自定义函数」功能,让你把常用逻辑封装起来反复用。它不要求你会编程,门槛比 VBA 低得多,但效果却一点不差。
学会了 LAMBDA,你的 Excel 水平绝对能上一个台阶。那些曾经让你头疼的重复公式、复杂嵌套,一招搞定。
赶紧找一个你常用的公式试试,你会发现——原来 Excel 还能这么玩!
参考来源: [1] Microsoft 官方文档 – LAMBDA 函数:https://support.microsoft.com/zh-cn/office/lambda-函数-9d021c92-6f44-4fbe-800c-49d4f86d8d47[1]
你用过 LAMBDA 吗?有什么好玩的应用场景?评论区聊聊!
引用链接
[1]https://support.microsoft.com/zh-cn/office/lambda-函数-9d021c92-6f44-4fbe-800c-49d4f86d8d47: https://support.microsoft.com/zh-cn/office/lambda-%E5%87%BD%E6%95%B0-9d021c92-6f44-4fbe-800c-49d4f86d8d47
夜雨聆风