使用 ArrayFormula 或 Query 代替在日期之间向下拖动 SumIf

Using a ArrayFormula or Query to replace dragging down SumIf between dates

我想将我使用的其中一个公式更改为 return 一组值,而不必 copy/paste 或向下拖动每个单元格的公式。我当前适用于可向下拖动的单个单元格的公式是:

=SUMIFS('Tracking Tasks'!B:B,
'Tracking Tasks'!C:C, ">="&B2,
'Tracking Tasks'!C:C, "<="&D2,
'Tracking Tasks'!D:D, "<>")

该公式总结了两个日期之间 "Completed" 也为 "Released" 的所有点(单元格不为空)。我尝试了很多解决方案,但这似乎最接近我想要实现的目标:

=ArrayFormula(SUM(
 QUERY('Tracking Tasks'!B:D,
  "select B 
  where C >= date '" & TEXT(B2:B, "yyyy-mm-dd") &
  "' and C <= date '" & TEXT(D2:D, "yyyy-mm-dd") & "'")
 ))

但是,此解决方案并不像我期望的那样 return 值数组,并且不考虑 "Released" 列。
Sample Google Sheet

为您解决

=ArrayFormula(IFERROR(VLOOKUP(FLOOR((B2:B-2)/7),QUERY({IF('Tracking Tasks'!D:D<>"",FLOOR(('Tracking Tasks'!C:C-2)/7),""),'Tracking Tasks'!B:B},"select Col1,sum(Col2) where Col1>0 group by Col1"),2,0),""))