来源:微软官方支持文档(https://support.microsoft.com/zh-cn/excel/functions/lambda-function) 适用版本:Microsoft 365 专属 Excel、Microsoft 365 Mac 版专属 Excel、Excel 2024、Excel 2024 for Mac、WPS 最新版

简介

使用 LAMBDA 函数可以创建可重用的自定义函数,并使用易记名称调用它们。新函数在整个工作簿中可用,其调用类似本机 Excel 函数。

可以为常用公式创建函数,无需复制并粘贴此公式(可能容易出错),并有效地将自己的函数添加到本机 Excel 函数库中。此外,LAMBDA 函数无需 VBA、宏或 JavaScript,因此非程序员也可以从使用中获益。

语法演示

=LAMBDA(x, y, x+y)   ← 定义(参数、函数、计算三部分)
=myLambda(1, 3)      ← 调用
→ 输出结果:4

语法

=LAMBDA([parameter1, parameter2, …,] calculation)
参数 说明
参数 要传递给函数的值,例如单元格引用、字符串或数字。最多可以输入 253 个参数。此参数可选。
计算 要作为函数结果执行并返回的公式。其必须为最后一个参数,且必须返回结果。此参数是必需项。

备注

  • Lambda 名称和参数遵循 Excel 名称语法规则,但有一个例外:不要在参数名称中使用句点(.)。
  • 请确保创建 LAMBDA 函数时遵循最佳做法,就像使用任何本机 Excel 公式一样,例如传递正确的参数数目和类型、匹配左括号和右括号,以及将数字输入为未格式化数字。
  • 此外,使用 “求值” 命令时,Excel 会立即返回 LAMBDA 函数的结果,而你无法单步执行。

错误

  • 如果输入的参数超过 253 个,则 Excel 会返回 #VALUE! 错误。
  • 如果传递给 LAMBDA 函数的参数数目错误,则 Excel 会返回 #VALUE! 错误。
  • 如果从自身内部调用 LAMBDA 函数,且调用为循环调用,则 Excel 会返回 #NUM!(如果递归调用过多,则为错误)。
  • 如果在单元格中创建 LAMBDA 函数但未同时从单元格内调用该函数,则 Excel 会返回 #CALC! 错误。

创建 LAMBDA 函数(分步流程)

步骤 1:测试公式

确保在 计算 参数中使用的公式正常工作。这一点至关重要,因为在创建 LAMBDA 函数时,你希望确保公式正常工作,且可以在遇到错误或意外行为时排除这种情况。

步骤 2:在单元格中创建 Lambda

好的做法是在单元格中创建并测试 LAMBDA 函数,从而确保其正常工作,包括参数的定义和传递。要避免 #CALC! 错误,请添加对 LAMBDA 函数的调用以立即返回结果:

=LAMBDA function ([parameter1, parameter2, ...], calculation) (function call)

以下示例返回值 2:

=LAMBDA(number, number + 1)(1)

步骤 3:将 Lambda 添加到名称管理器

完成 LAMBDA 函数后,将其移动到名称管理器以获取最终定义。通过执行此操作,可以为 LAMBDA 函数指定有意义的名称、提供说明,并使其可从工作簿中的任何单元格重新使用。还可以像管理任何名称一样管理 LAMBDA 函数,例如字符串常量、单元格区域或表。

操作过程:

  1. 执行下列操作之一:

    • 在 Excel for Windows 中:选择 “公式” → “名称管理器”
    • 在 Excel for Mac 中:选择 “公式” → “定义名称”
  2. 选择 “新建”,然后在 “新建名称” 对话框中输入信息:

字段 说明
名称 输入 LAMBDA 函数的名称。
作用域 工作簿为默认值。单个工作表也可用(Excel 网页版除外)。
注释 可选,但强烈建议使用。最多输入 255 个字符。简要描述函数用途以及正确的参数数目和类型。当您键入公式并使用公式自动完成(也称为 Intellisense)时,显示在"插入函数"对话框中,并作为工具提示(与计算参数)一起显示。
引用 输入 LAMBDA 函数。
  1. 要创建 LAMBDA 函数,请选择 “确定”。
  2. 要关闭 “名称管理器” 对话框,请选择 “关闭”。

示例

示例 1:将华氏度转换为摄氏度

在名称管理器中定义以下内容:

字段 内容
名称 ToCelsius
作用域 工作簿
注释 将华氏度转换为摄氏度
引用 =LAMBDA(temp, (5/9) * (Temp-32))

输入数据(A2:A6):

华氏度(°F)
104
86
68
50
32

公式与结果:

公式 结果(°C)
=TOCELSIUS(A2) 40
=TOCELSIUS(A3) 30
=TOCELSIUS(A4) 20
=TOCELSIUS(A5) 10
=TOCELSIUS(A6) 0

示例 2:查找斜边

在名称管理器中定义以下内容:

字段 内容
名称 斜边
作用域 工作簿
注释 返回直角三角形斜边的长度
引用 =LAMBDA(a, b, SQRT((a^2+b^2)))

输入数据(A2:B5,a、b 为两条直角边):

a b
3 4
5 1.2
7 24
9 40

公式与结果:

公式 结果
=HYPOTENUSE(A2,B2) 5
=HYPOTENUSE(A3,B3) 1.3
=HYPOTENUSE(A4,B4) 25
=HYPOTENUSE(A5,B5) 41

示例 3:字数统计

在名称管理器中定义以下内容:

字段 内容
名称 CountWords
作用域 工作簿
注释 返回文本字符串中的字数统计
引用 =LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), " ", "")) + 1)

输入数据(A2:A5):

文本
当邪恶来敲门。
我来过,我见过,我征服过。
一只棕色狐狸快速跳过了那只懒狗。
使用原力,卢克!

公式与结果:

公式 结果(字数)
=COUNTWORDS(A2) 5
=COUNTWORDS(A3) 6
=COUNTWORDS(A4) 9
=COUNTWORDS(A5) 4

示例 4:查找感恩节日期

在名称管理器中定义以下内容:

字段 内容
名称 ThanksgivingDate
作用域 工作簿
注释 返回给定年份的美国感恩节日期
引用 =LAMBDA(year, TEXT(DATE(year, 11, CHOOSE(WEEKDAY(DATE(year, 11, 1)), 26, 25, 24, 23, 22, 28, 27)), "mm/dd/yyyy"))

输入数据(A2:A6,年份):

年份
2020
2021
2022
2023
2024

公式与结果:

公式 结果
=THANKSGIVINGDATE(A2) 11/26/2020
=THANKSGIVINGDATE(A3) 11/25/2021
=THANKSGIVINGDATE(A4) 11/24/2022
=THANKSGIVINGDATE(A5) 11/23/2023
=THANKSGIVINGDATE(A6) 11/28/2024

文档整理日期:2026-09-30