资讯

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

Excel不断增加新函数,使得Excel公式的功能和用途变得更加强大。例如LAMBDA函数允许用户通过定义名称创建自定义函数,且无需VBA(宏)。这意味着文件仍是标准的.xlsx格式文件。

扫描一下二维码,收听音频:

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

LAMBDA函数类似于之前的文章中介绍过的LET函数。它本身不执行计算。可以捕获单元格和区域值作为输入,然后对这些单元格或区域执行特殊计算并返回结果。

该函数的妙处在于,可在单个函数中执行复杂的计算,而且命名后能在整个文件中重复调用,不必使用复杂的公式。这有助于缩简公式,使其更易于理解。自定义函数可以集中定义,如需修改公式,只需在一处进行修改。

通过以下两个示例来讲解LAMBDA函数的一些新特性,希望能帮助您了解并使用该函数。

不含消费税(GST

先从一个简单的示例开始。假设有一套系统可提供含消费税(GST)的发票总额,且所有发票均含GST,而我们需要不含GST的金额。图1显示了单元格C2中该金额的计算公式,公式中引用了H1单元格中的GST税率和B列中的值,计算结果四舍五入并保留小数点后两位。

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图1

我们需要在整个文件中引用该计算公式。我们可以创建自己的函数,提取一个值并返回不含GST的金额值。为此,我们将创建一个名为GSTExclusive的自定义函数。

第1步——在单元格中创建LAMBDA函数并进行测试。

LAMBDA函数通常并不在单元格中直接使用,但会需要在单元格中进行测试。它采用特殊的语法进行赋值,以便测试。图2比较了ROUND函数与调用ROUND函数的LAMBDA函数。

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图2

最后的 (B2) 是便于LAMBDA函数进行测试的特殊语法,其他函数没有这项功能。它会将B2单元格中的值传递给LAMBDA函数前面的Amount参数。用户可以定义多个参数。ROUND函数可在计算中调用Amount的值。LAMBDA函数会返回ROUND函数返回的值。请注意,LAMBDA通常并不在单元格中直接使用。看到最终结果后,你会更加清楚。

第2步——将LAMBDA函数复制到定义名称中。

在公式栏中,使用鼠标选择并复制LAMBDA函数,包括符号“=”但不包括末尾的 (B2)。

在公式(Formulas)功能区选项卡中,点击“定义的名称”(Defined Names)组中的“定义名称”(Define Name)按钮。

在名称(Name)框中输入GSTExclusive,在“引用位置”(Refers to)框中粘帖LAMBDA函数,然后点击“确定”(OK)。参见图3。

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图3

第3步——调用这个定义名称的新函数。现在即可在整个文件中调用这个定义名称,就像函数一样。参见图4

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图4

第4步——为定义名称添加注释。

在输入常用Excel函数名称时,Excel会显示该函数的参数提示信息。可以通过在“新名称”(New Name)或“编辑名称”(Edit Name)对话框的“批注”(ment)部分输入函数的详细信息,实现类似的提示功能。在创建时(第2步)或创建名称后均可执行此操作。

在公式(Formula)选项卡中点击名称管理器(NameManager),找到GSTExclusive并选中,然后点击“编辑”(Edit)按钮,在编辑名称(Edit Name)对话框中添加批注,如图5所示。

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图5

开始输入名称时,会显示批注内容。

请注意,在“引用位置”(Refers to)框中,引用的单元格$H$1(GST税率)前面已添加工作表名称GST example,这可确保该函数在整个文件中均可正常调用。

工作表名称函数

LET函数允许用户在公式中使用变量,它可与LAMBDA函数无缝结合。我们将创建一个名为SheetName的函数,该函数会根据引用的单元格返回工作表名称。

图6显示了可从当前工作表中提取工作表名称的所有公式。这些公式显示在含有公式的单元格下方。该工作表的名称为Next example。

Excel小课堂:如何在不启用宏的情况下使用Excel自定义函数

图6

A1单元格中的公式适用于所有版本的Excel。

A4单元格中的LET函数需要订阅版Excel才能使用。LET函数通过使用变量来减少重复,从而缩简公式。请注意,在A1单元格的公式中调用了3次CELL函数,而在A4单元格的公式中仅调用了1次。

在A7单元格的LAMBDA函数中,LET函数中的CELL函数使用了引用单元格 (Ref)。

这是一种常见结构。LAMBDA函数的参数直接传递到LET函数定义的变量,从而将现有LET函数轻松转换为LAMBDA函数。

A10单元格使用定义名称的函数,即调用LAMBDA函数并返回工作表名称。

共享函数

如果将工作表从一个工作簿复制到另一个工作簿中,创建的LAMBDA自定义函数也可以一起复制过去。

请注意,GST示例中的函数不适合在文件之间复制,因为它依靠指向文件中某一单元格的链接来提取GST金额。第二个示例中的函数适用于所有文件。

以上就是对全新的LAMBDA函数的介绍。这个新函数可带来许多缩简Excel公式的机会。

高级公式环境加载项

为配合LAMBDA函数的发布,Excel新推出免费的Advanced Formula Environment加载项,以便LAMBDA函数更易于使用。它提供了单独的公式编辑窗口,可为LAMBDA函数的定义添加换行符和语法颜色,类似于在Power Pivot或Power BI中编辑DAX度量值公式。

点击这里,观看操作视频及英文原文。

点击这里,阅读微信原文。