使用 aLAMBDA 函数创建可重用的自定义函数,并使用易记名称调用它们。 新函数在整个工作簿中可用,其调用类似本机 Excel 函数。
可以为常用公式创建函数,无需复制并粘贴此公式(可能容易出错),并有效地将自己的函数添加到本机 Excel 函数库中。 此外,aLAMBDA 函数无需 VBA、宏或 JavaScript,因此非程序员也可以从使用中获益。
语法
=LAMBDA([parameter1, parameter2, …,] calculation)
参数 |
说明 |
---|---|
参数 |
要传递给函数的值,例如单元格引用、字符串或数字。 最多可以输入 253 个参数。 此参数可选。 |
计算 |
要作为函数结果执行并返回的公式。 其必须为最后一个参数,且必须返回结果。 此参数是必需项。 |
备注
错误
-
如果输入的参数超过 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 函数,例如字符串常量、单元格区域或表。
过程
-
请执行下列操作之一:
-
在 Excel for Windows 中,选择“公式 ”>“名称管理器”。
-
在 Excel for Mac 中,选择“公式 ”>“定义名称”。
-
-
选择“新建”,然后在“新建名称”对话框中输入信息:
名称:
输入 LAMBDA 函数的名称。
作用域:
工作簿为默认值。 单个工作表也可用。
注释:
可选,但强烈建议使用。 最多输入 255 个字符。 简要描述函数用途以及正确的参数数目和类型。
当键入公式并使用“公式自动完成”(也称为 Intellisense)时,显示在“插入函数”对话框中,并用作工具提示(和“计算”参数)。
引用:
输入 LAMBDA 函数。
例如:
-
要创建 LAMBDA 函数,请选择“确定”。
-
要关闭“名称管理器”对话框,请选择“关闭”。
有关详细信息,请参阅 使用名称管理器。
示例
在名称管理器中定义以下内容:
名称: |
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 技术社区中咨询专家或在社区中获取支持。