使用具有复杂公式的set.Formula的Javascript / Googlescript

时间:2016-01-09 01:47:18

标签: multidimensional-array google-apps-script google-sheets formulas array-formulas

我研究了这个,但找不到合适的解决方案。放置在工作表单元格中时,以下公式在公式级别下工作正常。问题是我希望公式在脚本级别运行。我所知道的选项包括运行脚本: (1)set.Formula('=复杂公式') 要么 (2)将整个公式重写为脚本

我是GAS的新手,并且已经搞乱了这两种方法。使用选项(1)时似乎存在语法错误,通常以缺少“)”的形式,我无法调试。使用选项(2)目前高于我的技能水平。任何选项的任何帮助将不胜感激。

以下是有问题的公式:

  

= ARRAYFORMULA(QUERY({UI!A:G,YEAR(UI!A:A),MONTH(UI!A:A),TEXT(UI!A:A,“MMMM”),TEXT(UI!答:A,“MMM-YY”),REPLACE(UI!A:A,1,1000,“GRAND   TOTAL“)},”SELECT * WHERE Col1 IS NOT NULL,Col2 IS NOT NULL LABEL   Col8'Year',Col9'MonthMO#',Col10'MonthMO',Col11'MonthMOYR',Col12   'GRAND TOTAL'“))

1 个答案:

答案 0 :(得分:1)

答案

公式不会“在脚本级别”运行,因此您必须将公式重写为Google Apps脚本/ JavaScript函数。

在脚本中转义公式撇号

如果您希望脚本将复杂公式添加到单元格中,请记住在一行中编写复杂公式会使调试它们变得更加困难。 尝试按功能和参数划分公式,并使用选项卡对齐它们。恕我直言,这可以防止使用Remove使脚本无法读取(Leaning toothpick syndrome)。

下面是一个onEdit()函数,它将问题中的复杂公式插入到单元格右侧的单元格中,其中写入了“是”。查看使用\来转义查询函数的第二个参数(select语句)中使用的撇号。

\