创建和使用命名函数

命名函数可让您创建自定义函数并在其中使用内置表格公式。我们新增了导入命名函数的功能,以便您在多个工作表中使用此类函数。

Named functions tutorial

要获取电子表格示例并跟着视频一起操作,请点击下方的“制作副本”。

制作副本

打开命名函数

  1. 在新的或现有电子表格中,点击数据 接着点按 命名函数

对于包含公式的单元格:

  1. 右键点击包含公式的单元格。
  2. 点击查看更多单元格操作 接着点按 定义命名函数

创建命名函数

创建命名函数时,请使用文本作为输入值的占位符。

例如,IF 函数最多包含 3 个参数:

IF(logical_expression, value_if_true, value_if_false)

如果您将文本“logical_expression”“value_if_true”或“value_if_false”作为参数输入单元格中,就会收到错误消息。这些参数是函数所需的输入值类型的占位符和说明。如果您想在函数中包含各类输入值,则在编写命名函数时,必须定义参数占位符。

此前,您只能使用 Apps 脚本创建自定义函数,为此您需要编写 JavaScript。有了命名函数,您可以使用直观的界面创建自定义函数,而无需编写任何代码。

命名函数包含 4 个主要组成部分:

  • 函数名称
    • 用于将函数插入单元格的函数名称,必须是大写英文字母。
    • 要求:
      • 不得与内置表格函数(如 SUM)同名。
      • 不能命名为 TRUEFALSE
      • 不能使用“A1”或“R1C1”语法。
        • 例如,如果您将函数命名为“A1”或“AA11”,则会出现错误。
      • 不能以数字开头。
      • 长度必须少于 255 个字符。
      • 不得包含空格。
      • 不得包含除下划线以外的特殊字符。
  • 函数说明
    • 在函数帮助框的“关于”部分中显示的函数说明。
  • 参数占位符(选填)
    • 占位符是对函数所需的输入值类型的说明。例如,当所需输入值分别为单个单元格或单元格范围时,参数名称分别是“CELL”或“RANGE”。
    • 要求:
      • 不得与命名函数中的其他参数占位符同名。
      • 不能使用“A1”或“R1C1”语法。
        • 例如,如果您将占位符命名为“A1”或“AA11”,则会出现错误。
      • 不得包含空格。
      • 不得包含除下划线以外的特殊字符。
  • 公式定义
    • 公式定义是指插入单元格中的已编写公式。如果您添加了定义的参数,则在将函数插入单元格时,应为函数的每个参数提供输入值。
    • 要求:
      • 必须是可解析的公式。
      • 不得缺少括号。
      • 所含英文逗号必须位置正确。

其他详情

将上述主要组成部分设置完毕后,您可以在第二页添加更多详细信息。对于您定义的每个参数占位符,都可以使用以下字段:

  • 参数说明
    • 对此函数所需参数的简短说明。例如,“您要搜索的单个值”。
  • 参数示例
    • 此参数的输入值示例。例如,如果参数应为单元格范围,则可以使用:“B3:B14”。

将命名函数添加到单元格时,这些额外的详细信息会与主要组成部分一起在函数帮助框中显示:

Sample of Named function arguments.

导入命名函数

如果您要创建更多命名函数,或者发现他人创建的某些函数很有用,那么您可能想将这些函数应用于不同的工作表中。如要重复使用已创建的命名函数,您可以将相应函数从其他工作表导入到当前工作表,方法如下:

  1. 在计算机上,打开 Google 表格
  2. 打开要导入命名函数的工作表。
  3. 点击顶部的数据 接着点按 命名函数 接着点按 导入函数
  4. 选择要导入的函数所在的工作表。
  5. 选择要导入的命名函数。
    • 如要导入文件中的所有命名函数,请点击全部导入
  6. 点击导入

提示:

  • 如果您选择导入的命名函数与当前所打开文件中已存在的命名函数同名:导入的函数会覆盖现有的命名函数。
  • 如果您选择导入的命名函数依赖于其他命名函数(例如公式定义):Google 表格就会提醒您存在该依赖项,并突出显示相应函数。
  • 如果您选择导入的命名函数使用与外部来源互动的公式(例如 IMAGE):Google 表格就会提醒您存在该互动。

示例

含有 2 个参数占位符的命名函数

  • 函数名称: CONTAINS
  • 说明:检查某个值是否出现在范围内。如果该值出现,则返回 TRUE;如果该值没有出现,则返回 FALSE
  • 参数占位符search_querysearch_range
  • 定义:=NOT(ISERROR(MATCH(search_query,search_range,0)))
  • 更多详细信息:
    • 参数说明:search_query
      • 您搜索的值
    • 参数示例: search_query
      • B3
    • 参数说明: search_range
      • 您要从中搜索值的范围
    • 参数示例: search_range
      • B3:B14

不包含参数占位符的命名的函数

  • 函数名称:NAMED_FUNCTIONS_SLOGAN
  • 说明:输出适当语句来描述命名函数。
  • 定义: ="命名函数有助于让公式更易于使用和读取。"

使用递归方法的命名函数

  • 函数名称: REVERSE_WORDS
  • 说明:反转字符串中的字词顺序
  • 占位符: str
  • 定义:=IF(ISERROR(FIND(" ", str)), str, REVERSE_WORDS(RIGHT(str, LEN(str)-FIND(" ", str)))&" "&LEFT(str, FIND(" ",str)-1))
  • 更多详细信息:
    • 参数说明: str
      • 需要反转的字符串
    • 参数示例: str
      • "reversed need you String"

使用 LAMBDA 的命名的函数

  • 函数名称: COUNT_FORMULAS
  • 说明:计算给定范围内的公式数量。
  • 占位符: 范围
  • 定义:=COUNTIF(MAP(range,LAMBDA(cell, ISFORMULA(cell))),"TRUE")
  • 更多详细信息:
    • 参数说明: range
      • 您要从中搜索公式的范围
    • 参数示例: search_range
      • A2:D7

常见问题解答

我可以在命名函数中创建相对范围吗?

不可以。公式定义中包含的所有范围都是绝对范围。对于公式定义未包含的范围,系统会将其转换为绝对范围。例如,系统会将“A1:B3”修改为“1!$A$1:$B$3”保存到表格,但您可以将相对范围作为参数传递给命名函数。

我可以将内置函数名称(例如 SUM)用作参数占位符名称吗?

可以。参数占位符可以与内置函数使用相同名称。例如,您可以将参数占位符命名为“SUM”。不过,如果参数占位符“SUM”和内置函数“SUM”同时出现,则前者优先级更高。

我可以将不含参数的已定义名称导入 Google 表格吗?

可以。不含参数的已定义名称可以导入 Google 表格,但应在不使用括号的情况下调用。

我可以修改导入至 Google 表格的不含参数的命名函数吗?

可以。Google 表格会更新已定义名称,使之符合 Google 表格的命名函数语法。所有单元格引用都必须添加括号。

我可以创建与自定义 Apps 脚本函数同名的命名函数吗?

不可以。您创建的命名函数不能与 Google 表格中存在的自定义 Apps 脚本函数同名。在 Google 表格中添加自定义函数时,您可以使用与现有命名函数相同的名称。不过,现有命名函数的优先级高于自定义函数。

在使用递归公式时,出现“尝试计算此公式时达到了计算限制”错误消息。如何解决此问题?

有 2 种情况会造成这一问题:

  • 公式的计算时间过长。
  • 公式计算使用的内存过多。

要解决此问题,请使用更简单的公式来降低复杂性。

如果命名函数和命名的范围同名,哪个优先级更高?

命名的范围优先级高于命名函数。

相关资源

true
访问学习中心

您在单位或学校使用 Google 文档等 Google 产品吗?欢迎使用功能强大的提示、教程和模板。了解如何在不安装 Office 的情况下处理 Office 文件、创建动态项目计划和团队日历,以及自动整理收件箱等。

搜索
清除搜索内容
关闭搜索框
主菜单
10407540433741076727
true
搜索支持中心
true
true
true
true
true
35
false
false