2017-08-09 51 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列範圍)。