2017-08-09 84 views
0

私のテーブルのセルC1:Cには、チケットIDが6行あります。異なるスプレッドシートを検索してそのチケットIDを検索し、そのチケットに費やされた合計時間を計算するのが好きです。ARRAYFORMULAをquery where節で使用する方法は?

私はそれは、以下の式を用いて作業している:この例で

=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を見つけることができる場所です。

は今、私はちょうどARRAYFORMULAQUERYをラップし、代わりにちょうどC1C1:Cを使用しますが、それは動作しませんと考えていました。今私はすべてのセルに上記の数式をコピーして貼り付けることができましたが、よりクリーンな方法が必要です。

ANSWER

私は、それを動作させるには、以下の最大の答えのおかげで、次の式を使用していました。

=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

いいえ、1は、クエリ文字列の配列を作成し、一度にすべてを実行するためにarrayformula(query(...))を使用することはできません。

オルタナティブ:代わりに

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

のは、あなたがしたいのCol1の値ごとに合計をルックアップするためにvlookupを使用し、その後、シート上の他の場所にクエリ

SELECT Col1, SUM(Col2) GROUP BY Col1 

を使用し、そして。 vlookupこのようarrayformulaの内部で使用することができる。

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

は(正確な必須一致)列EにC1..C10の値のそれぞれを検索し、カラムにF(検索の2列目に対応する値を返します範囲)。

関連する問題