【问题标题】:Calling a script function in a QUERY statement在 QUERY 语句中调用脚本函数
【发布时间】:2012-06-25 17:40:07
【问题描述】:

在 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(A1:A10, "select test(A)" )

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

【问题讨论】:

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


    【解决方案1】:

    我的问题是:您可以将脚本函数用作“标量函数”吗 在 QUERY 语句中?

    不,很遗憾,你不能。

    在字里行间,我认为您需要做的是修改您的脚本,使其接受一个数组作为参数,对该数组执行它需要执行的操作,然后返回一个结果数组。然后你就可以调用类似的东西:

    =test(A1:A10)
    

    或者您可以将其作为您的 first 参数包含在 QUERY 语句中:

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

    【讨论】:

    • 阿达尼,谢谢你的建议。我喜欢使用该函数作为查询的来源。这是一个很好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2021-11-11
    • 2018-03-03
    相关资源
    最近更新 更多