我正在尝试使用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表格查询功能中的错误吗?我想知道,因为当我将包含查询功能的源表打印到PDF时会发生相同的事情。生成的PDF显示零值。因此,这似乎不是我的脚本的问题,而更像是源表的问题。测试“简单”查询公式表的测试效果很好。
我究竟做错了什么?
编辑:
这是一个示例:https : //docs.google.com/spreadsheets/d/1eHHV-TJhC_aVNNLspx3suKhrthtcjRfIcZR0dWdTvOI
尝试打印Sheet2。第一个PDF“预览”看起来不错,但是在导出后打开PDF时,总和值均为零。
解答: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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句