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

来源:澳洲CPA 时间:2022-07-31 作者:澳洲CPA编辑:无忧草
打印 RSS |
导读: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度量值公式。

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

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

沪公网安备 31011802001002号