通过应用程序脚本引用Google表格中查询公式的单元格值似乎不起作用

问题描述 投票:0回答:1

我正在尝试使用Apps脚本将一个单元格的值复制到另一个单元格。源单元格的值由查询公式产生:

=sum(iferror(query(ExportDrop!$A$2:$AJ,"select AJ where A matches '" & join("|",C$3:C) & "' AND AH = '" & A3 & "'",0),0))

源工作表成功且正确地显示了此查询公式的输出。

在脚本中工作,以下代码产生零(0),这与查看工作表时不同。

cellval = sourceSheet.getRange("B3").getValue();
SpreadsheetApp.getUi().alert(cellval); return;

我尝试使用setActiveRangeSelection(),copyValuesToRange(),copyTo(,{contentsOnly:true})等来尝试使用getDisplayValue(),getValue(),getValues()(对范围引用进行相应更改)等]

这是Google Sheet查询功能中的错误吗?我想知道,因为当我将包含查询功能的源工作表打印为PDF时会发生相同的情况。生成的PDF显示零值。因此,这似乎不是我的脚本的问题,而更像是源表的问题。测试“简单”查询公式表的工作正常。

我在做什么错?

编辑:

这里是一个例子:https://docs.google.com/spreadsheets/d/1eHHV-TJhC_aVNNLspx3suKhrthtcjRfIcZR0dWdTvOI

尝试打印Sheet2。第一个PDF“预览”看起来不错,但是在导出后打开PDF时,总和值为全零。

google-apps-script google-sheets printing google-sheets-query
1个回答
0
投票

答案:Google表格查询功能广告的功能已损坏/不完整。

示例:matches在本地运行,并且从未在Google服务器上运行,从而导致出现同步问题,format布尔值根本不起作用。

解决:使用一系列的OR代替matches

=sum(iferror(query(Sheet1!$A$2:C,"select C where (A = " &join(" OR A = ",filter(C$1:C,C$1:C<>"")) & ") AND B = '" & A1 & "'",0),0))
© www.soinside.com 2019 - 2024. All rights reserved.