乐于分享
好东西不私藏

Excel 函数 LAMBDA 实战:告别重复公式

Excel 函数 LAMBDA 实战:告别重复公式

Excel 函数 LAMBDA 实战:告别重复公式


你有没有遇到过这种情况?

同一个公式,在 Excel 里复制了几十遍,每次就改个参数? 写了个超复杂的嵌套公式,回头再看完全看不懂自己写了啥? 想把自己常用的计算逻辑封装起来,结果只能靠 VBA?

如果有,那今天这个函数你必须了解一下——LAMBDA

这货是 Excel 2021 和 Microsoft 365 新增的函数,号称 Excel 最强函数之一。简单说,它能让你自己定义函数,不用写代码,不用 VBA,就像 Excel 内置函数一样随便用。

01 LAMBDA 到底是啥?

用人话来说,LAMBDA 就是一个**「函数的函数」**。

它允许你把一段公式逻辑封装起来,给它起个名字,然后像调用内置函数一样调用它。

比如你经常要算「销售额 = 单价 × 数量 × (1-折扣率)」,以前每次都得写一遍这个公式。现在用 LAMBDA,一次定义,随时调用。

语法很简单:

=LAMBDA(参数1, 参数2, ..., 计算公式)

定义完不能直接用,得给它起个名字。步骤是:

  1. 打开「名称管理器」(公式 → 名称管理器 → 新建)
  2. 起个名字,比如「算销售额」
  3. 在「引用位置」写 =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 怎么上手?

别被吓到,上手其实很简单:

  1. 先从简单的开始 找一个你常用的公式片段,比如算毛利率啥的,先试着用 LAMBDA 封装一下。

  2. 用好「名称管理器」 命名的时候用中文或者好记的英文,比如「毛利率」「利润计算」,用的时候跟内置函数没区别。

  3. 善用 LET 函数 LAMBDA 里配合 LET 函数(给中间结果起名字),公式可读性直接起飞。

  4. 参考微软官方文档 微软官网有 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