使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

使用 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 中创建自定义函数

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×