在Google表格中的公式中使用自定义函数?

时间:2018-11-16 08:43:34

标签: google-sheets

详细信息:

我有一个工作表,该工作表的公式基于同一电子表格的另一个工作表部分来过滤数据。

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

公式

=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,而单引号给出的公式解析错误。

1 个答案:

答案 0 :(得分:0)

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

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

但似乎FILTER不会接受该构造。

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