使用 LAMBDA 定义自定义函数
将计算封装为可重复使用的命名函数
使用 LAMBDA 定义自定义函数 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
构建您自己的函数
Excel 自带数百个函数,例如 SUM 和 XLOOKUP。但如果您需要一个不存在的函数,例如将摄氏温度转换为华氏温度,该怎么办呢?
LAMBDA 函数让您只使用公式就能定义自己的可复用函数,无需编程。您可以描述输入(称为参数)和计算过程,而 Excel 会像处理内置函数一样处理它。
Microsoft 365 和 Google Sheets 都支持 LAMBDA。在本课中,您将学习如何将计算封装为可复用的命名函数。
LAMBDA 的结构
LAMBDA 由两部分组成:一个参数名称列表,以及使用这些参数的最终计算。
它的结构与 LET 完全相似:除最后一个参数外,其他每个参数都是参数名称,最后一个参数则是执行实际工作的公式。
单独的 LAMBDA 不会执行任何操作,就像菜谱在没有用食材烹饪之前不会产生任何结果一样。
=LAMBDA(parameter1, parameter2, calculation)直接调用 LAMBDA
要立即测试 LAMBDA,请将它放在括号中,并紧接着传入值。这称为内联调用。
这里定义了一个接收 x 并返回 x*2 的 LAMBDA,然后立即使用 5 调用它。结果为 10。末尾的 (5) 为 x 提供值。
这是在为 LAMBDA 命名之前,确认其逻辑正常工作的最快方式。
=LAMBDA(x, x*2)(5)实际示例:摄氏温度转华氏温度
让我们构建一个实用的函数。将摄氏温度转换为华氏温度的公式是乘以 1.8,再加上 32。
我们定义一个包含参数 c 的 LAMBDA,然后使用单元格 A2 中的值调用它。如果 A2 中的值为 20,结果就是 68。
它现在已经表现得像一个自定义函数了,但每次都输入完整的 LAMBDA 很麻烦。接下来我们将为它命名。
=LAMBDA(c, c*1.8 + 32)(A2)多个参数
LAMBDA 可以接收多个输入。只需在最终计算之前列出每个参数名称即可。
下面是一个根据 width 和 height 计算矩形面积的函数。我们以内联方式传入 4 和 5,得到 20。
参数按照位置匹配:第一个值对应第一个参数,第二个值对应第二个参数,依此类推。
=LAMBDA(width, height, width*height)(4, 5)在名称管理器中为 LAMBDA 命名
真正强大的地方在于为 LAMBDA 命名,这样您就可以像调用内置函数一样调用它。
在 Excel 中依次打开 公式、名称管理器、新建。输入一个名称,例如 ToFahrenheit,然后将 LAMBDA(不包含内联值)粘贴到 引用位置框中。
之后,您就可以在工作簿的任何位置使用 =ToFahrenheit(A2),就像使用 SUM 一样。我们将在后续课程中深入学习命名 LAMBDA。
=LAMBDA(c, c*1.8 + 32)将 LAMBDA 与 LET 结合使用
在 LAMBDA 内部,您可以使用 LET 为中间步骤命名,让复杂逻辑保持整洁。
此函数接收 price 和 rate,将 tax 计算为一个已命名的步骤,然后返回总额。借助 LET,函数主体更加清晰易读。
=LAMBDA(price, rate, LET(tax, price*rate, price + tax))(100, 0.2)Google Sheets 中的 LAMBDA
Google Sheets 支持使用相同语法的 LAMBDA。您可以定义参数和计算过程,并以相同方式进行内联调用。
Sheets 没有名称管理器,但在 数据、命名函数下提供了命名函数,作用相同。您编写的 LAMBDA 主体与 Excel 中的完全一致。
=LAMBDA(c, c*1.8 + 32)(A2)LAMBDA 的重要性
LAMBDA 让您只需定义一次业务逻辑,就能在各处重复使用:
- 不再需要反复复制和粘贴相同的复杂公式
- 只需在一个位置修正逻辑,所有使用位置都会更新
- 像
ToFahrenheit这样的自说明名称可以解释其用途
它让电子表格变成一个可以构建自有小型函数库的地方,这些函数都能针对您的工作进行定制。
常见陷阱
如果您将 LAMBDA 输入单元格却没有调用它,Excel 会返回 #CALC! 错误,或显示该函数的文本。这是预期行为。
LAMBDA 需要值才能运行。您可以在末尾添加类似 (A2) 的内联调用,或者将其保存为命名函数,再使用参数调用该名称。单独的 LAMBDA 只是一个等待使用的定义。
=LAMBDA(x, x*2)(5)目前为止的回顾
现在您已经知道,LAMBDA 可以定义参数和计算过程;接收到值后,它的行为就像一个自定义函数。
- 使用内联调用测试逻辑:
=LAMBDA(x, x*2)(5) - 支持按位置匹配的多个参数
- 与 LET 结合,组织清晰的内部步骤
- 在名称管理器中为其命名,以便在整个工作簿中重复使用
接下来您将学习如何使用 MAP 和 REDUCE 将 LAMBDA 应用于整个数组。
快速检查
测试您对 LAMBDA 调用方式的理解。
回顾:使用 LAMBDA 创建自定义函数
LAMBDA 让您仅使用公式就能构建自己的函数。
- 语法:参数名称后跟一个最终计算
- 传入值进行内联调用以测试,或为其命名以便重复使用
- 参数按位置与参数值匹配
- 在 Excel 和 Google Sheets 中的用法相同
- 单独的 LAMBDA 需要值,否则会返回 #CALC!
现在您可以将重复的逻辑变成一个整洁的命名工具。接下来:使用 MAP 和 REDUCE 将 LAMBDA 应用于数组。
=LAMBDA(c, c*1.8 + 32)(A2)常见问题解答
「使用 LAMBDA 定义自定义函数」课时是免费的吗?
是的 — 「使用 LAMBDA 定义自定义函数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「使用 LAMBDA 定义自定义函数」这节课中我会学到什么?
将计算封装为可重复使用的命名函数 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用 LAMBDA 定义自定义函数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 LET 命名步骤
- 使用 LAMBDA 定义自定义函数
- 使用 MAP 和 REDUCE 循环处理
- 使用命名 LAMBDA 简化公式