Google表格:QUERY的两列与一些空单元格相加

时间:2017-08-21 18:26:30

标签: google-sheets formulas

我尝试在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函数获取列的总和?

2 个答案:

答案 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,所以它可能会更慢。