我尝试在Google表格中使用query
功能获取两列的总和。
Col1 Col2 Col3
-----------------------
12 User1
23 44 creature
55 User1
14 User1
如果每列中至少有一个数字,则此工作正常:
=QUERY(IMPORTRANGE('SomeURL';"Page!A1:C");
"select (sum(Col1) + sum(Col2)) where Col3 = 'User1'")
但是,如果一列中的所有单元格在结果集中都为空,则此查询会导致错误QUERY:AVG_SUM_ONLY_NUMERIC
。
Col1 Col2 Col3
-----------------------
12 User1
23 44 creature
User1
14 User1
如果有时某个列中的单元格为空,我如何使用query
函数获取列的总和?
答案 0 :(得分:1)
=ARRAYFORMULA(SUM(query(IMPORTRANGE("url","page!A1:C6"),"select Col1,Col2 where Col3 = 'User1'")))
这应该适用于简单的总和。但我认为QUERY
内部没有办法将空白视为零或将其视为数字。如果您实际上可以将范围导入工作表(即,将它们用作帮助列),那么您可以使用ARRAYFORMULA(Query ({filter (A1:B6*1,NOT(ISEMAIL(A1:A6))),C1:C6}, "select *....
您应该在Query之外转换空白(通过*1
)或在查询外求它们。或者使用DOUBLE Query和双重导入范围,这将是性能贬值。
答案 1 :(得分:1)
您可以对查询进行SUM,如下所示: = sum(查询('SomeURL';“Page!A1:C”);“选择Col1,Col2,其中Col3 ='User1'”))
或者使用SUMIF()两次,每列一次。但这意味着2个importranges,所以它可能会更慢。