在QUERY语句中调用脚本函数

时间:2012-06-25 17:40:08

标签: google-apps-script google-sheets google-query-language

在QUERY“select”子句中,它声明您可以使用标量函数代替 列名称,例如“year(A)”。

在文档的另一部分中,它声明您可以调用脚本 通过将“= function_name(...)”编码到单元格中来起作用。

我的问题是:你能否在QUERY中使用脚本函数作为“标量函数” 声明?

如果可能,它将大大简化代码并可能提高性能, 在某些情况下,例如“将数据从一张纸复制到另一张纸”。

这是我的例子

Assume "test" is a function that issues a "return" statement that modifies
its input parameter.  

我试过了代码

=test(A1)

在单元格中,它可以工作。

但是当我尝试这个QUERY时

=QUERY(A1:A10, "select test(A)" )

失败了。我的猜测它不喜欢“测试(A)”值。 有没有办法做到这一点。

1 个答案:

答案 0 :(得分:3)

  

我的问题是:你能否使用脚本函数作为“标量函数”   在QUERY声明中?

不幸的是,不,你不能。

在行之间阅读,我认为你需要做的是修改你的脚本,使它接受一个数组作为参数,做它需要对该数组做什么,并返回一个结果数组。然后你就可以调用类似的东西:

=test(A1:A10)

或者您可以在QUERY语句中包含它作为第一个参数:

=QUERY(test(A1:A10);"select Col1 where Col1 contains 'x'")