2017-08-09 66 views
0

在我的表的单元格C1:C我有6行的票证号码。我喜欢搜索不同的电子表格来搜索这些票证ID并计算在该票证上花费的总小时数。如何在查询where子句中使用ARRAYFORMULA?

我有它的工作使用下面的公式:

=QUERY({IMPORTRANGE("SPREADSHEETID";"B3:B")\ARRAYFORMULA(TO_PURE_NUMBER(IMPORTRANGE("SPREADSHEETID";"F3:F")-IMPORTRANGE("SPREADSHEETID";"E3:E")))};"SELECT SUM(Col2) WHERE Col1 = '"&C1&"' GROUP BY Col1 LABEL SUM(Col2) ''") 

在这个例子中,C1是在票证ID可以找到。

现在,我想我可能只是换QUERYARRAYFORMULA和使用C1:C,而不只是C1但将无法正常工作。现在我可以将上面的公式复制并粘贴到每个单元格中,但必须有一个更清晰的方法。

ANSWER

我用下面的公式,使其工作,这要归功于下面Max的答案。

=QUERY(
{ 
    IMPORTRANGE("SPREADSHEETID";"B3:B")\ 
    ARRAYFORMULA(
    TO_PURE_NUMBER(
     IMPORTRANGE("SPREADSHEETID";"F3:F") - IMPORTRANGE("SPREADSHEETID";"E3:E") 
    ) 
) 
}; 
" 
SELECT Col1, SUM(Col2) 
WHERE Col1 = '" & JOIN("' OR Col1 = '";FILTER(C:C; C:C <> "")) & "' 
GROUP BY Col1 
LABEL SUM(Col2) '' 
") 

回答

1

样品公式为:

=QUERY({A:B},"select * where Col1 = '"&JOIN("' or Col1 = '",FILTER(D2:D,D2:D<>""))&"'")

enter image description here

+0

感谢那些没有的伎俩! – Mark

1

没有,一个不能创建查询字符串数组,并使用arrayformula(query(...))同时运行它们。

替代:不是

SELECT SUM(Col2) WHERE Col1 = '"&C1&"' GROUP BY Col1 LABEL SUM(Col2) '' 

使用查询

SELECT Col1, SUM(Col2) GROUP BY Col1 

其他地方在纸张上,然后用vlookup来查找和为您要Col1中的每个值。 vlookup可以的arrayformula内使用像这样:

=arrayformula(vlookup(C1:C10, E:F, 2, 0)) 

查找每个C1..C10值在列E(精确匹配所需的),并在柱返回对应的值F(所搜索的第2列范围)。