Applies ToMicrosoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 网页版 Excel 2024 Excel 2024 for Mac

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

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

LAMBDA 函数的工作原理

语法

=LAMBDA([parameter1, parameter2, …,] calculation)    

参数

说明

参数

要传递给函数的值,例如单元格引用、字符串或数字。 最多可以输入 253 个参数。 此参数可选。

计算

要作为函数结果执行并返回的公式。 其必须为最后一个参数,且必须返回结果。 此参数是必需项。

备注

  • Lambda 名称和参数遵循名称的 Excel 语法规则,但有一个例外: 参数名称中 不使用句号(.)。 有关详细信息,请参阅 公式中的名称。

  • 请确保创建 LAMBDA 函数时遵循最佳做法,就像使用任何本机 Excel 公式一样,例如传递正确的参数数目和类型、匹配左括号和右括号,以及将数字输入为未格式化数字。 此外,使用 Evaluate 命令时,Excel 会立即返回 LAMBDA 函数的结果,你无法单步执行该函数。 有关详细信息,请参阅 检测公式中的错误。

错误

  • 如果输入的参数超过 253 个,则 Excel 会返回 #VALUE! 错误。

  • 如果传递给 LAMBDA 函数的参数数目错误,则 Excel 会返回 #VALUE! 错误。

  • 如果从自身内部调用 LAMBDA 函数,且调用为循环调用,则 Excel 会返回 #NUM! 如果递归调用过多,则为错误。

  • 如果在单元格中创建 LAMBDA 函数但未同时从单元格内调用该函数,则 Excel 会返回 #CALC! 错误。

创建 LAMBDA 函数

以下为要遵循的分步流程,其有助于确保 Lambda 按预期工作,且与本机 Excel 函数的行为非常相似。

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

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

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

以下示例返回值 2。=LAMBDA(number, number + 1)(1)

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

过程

  1. 请执行下列操作之一:

    • 在 Excel for Windows 中,选择“公式 ”>“名称管理器”。

    • 在 Excel for Mac 中,选择“公式 ”>“定义名称”。

  2. 选择“新建”,然后在“新建名称”对话框中输入信息:  

    名称:

    输入 LAMBDA 函数的名称。

    作用域:

    工作簿为默认值。 单个工作表也可用。

    注释:

    可选,但强烈建议使用。 最多输入 255 个字符。 简要描述函数用途以及正确的参数数目和类型。

    当键入公式并使用“公式自动完成”(也称为 Intellisense)时,显示在“插入函数”对话框中,并用作工具提示(和“计算”参数)。

    引用:

    输入 LAMBDA 函数。 

    例如: 在名称管理器中定义 LAMBDA 函数

  3. 要创建 LAMBDA 函数,请选择“确定”。

  4. 要关闭“名称管理器”对话框,请选择“关闭”。

有关详细信息,请参阅 使用名称管理器。

示例

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

名称:

ToCelsius

作用域:

工作簿

注释:

将华氏度转换为摄氏度

引用:

=LAMBDA(temp, (5/9) * (Temp-32))

复制下表中的示例数据,然后将其粘贴进新 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

数据

104

86

68

50

32

公式

结果

=TOCELSIUS(A2)

40

=TOCELSIUS(A3)

30

=TOCELSIUS(A4)

20

=TOCELSIUS(A5)

10

=TOCELSIUS(A6)

0

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

名称:

斜边

作用域:

工作簿

注释:

返回直角三角形斜边的长度

引用:

=LAMBDA(a, b, SQRT((a^2+b^2)))

复制下表中的示例数据,然后将其粘贴进新 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

数据

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

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

名称:

CountWords

作用域:

工作簿

注释:

返回文本字符串中的字数统计 

引用:

=LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), " ", "")) + 1)

复制下表中的示例数据,然后将其粘贴进新 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

数据

当邪恶来敲门。

我来过,我见过,我征服过。

一只棕色狐狸快速跳过了那只懒狗。

使用原力,卢克!

公式

结果

=COUNTWORDS(A2)

5

=COUNTWORDS(A3)

6

=COUNTWORDS(A4)

9

=COUNTWORDS(A5)

4

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

名称:

ThanksgivingDate

作用域:

工作簿

注释:

返回给定年份的美国感恩节日期

引用:

=LAMBDA(year, TEXT(DATE(year, 11, CHOOSE(WEEKDAY(DATE(year, 11, 1)), 26, 25, 24, 23, 22, 28, 27)), "mm/dd/yyyy"))

复制下表中的示例数据,然后将其粘贴进新 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

数据

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

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家或在社区中获取支持。

另请参阅

LET 函数

在 Excel 中创建自定义函数

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。