【问题标题】:Using Custom Function inside formula in Google Sheet?在 Google 表格的公式中使用自定义函数?
【发布时间】:2018-11-16 08:43:34
【问题描述】:

详情:

我有一个表格,其中包含一些公式,可以根据同一电子表格的另一个表格部分过滤数据。

现在我有一个自定义函数,它返回电子表格中第一张工作表的名称。我需要在公式中使用这个值。

公式

=IFERROR(SUM(filter('Sprint H 24102018-13112018'!E:E,'Sprint H 24102018-13112018'!B:B=A18,'Sprint H 24102018-13112018'!D:D=$B$1)),0)

现在我想用我的 gScript 函数的返回值替换工作表的名称(用单引号括起来)。

功能

function getFirstSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getName()
  Logger.log(sheet)
  return sheet;
  }

我尝试了下面的方法,但它给出的值为 0,带有单引号和没有单引号的公式解析错误。

【问题讨论】:

  • 由于函数的返回值将是一个字符串,你试过不加引号吗?
  • 我做到了。它给出了公式解析错误。我确实在问题中提到了这一点
  • 您可以共享您的电子表格并拥有编辑权限吗?

标签: google-sheets


【解决方案1】:

可以在 Google 表格的公式中使用自定义函数,例如在 QUERY 中使用 INDIRECT:

=query(indirect("'"&getfirstsheet()&"'!B:E"),"select sum(E) where B ='"&A18&"' and D='"&$B$1&"' label sum(E) ''")

但似乎 FILTER 不会接受这种构造。

但请注意,您的函数不会因工作表名称的更改而更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2021-03-27
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    相关资源
    最近更新 更多