如何在数组公式中使用 Averageifs 或 Sumifs

How to use Averageifs or Sumifs in an Arrayformula

我将 post link 添加到本文底部的电子表格中。

我正在尝试计算某个日期范围内的一列数字的平均值。下面的公式有效,但我必须将它拖到列中,我希望它是一个数组以便自动更新。

=iferror(averageifs(B:B,A:A,">="&C2,A:A,"<="&D2),1)

所以我将它创建为一个数组,如下所示:

 =iferror(ArrayFormula(averageifs(B:B,A:A,">="&C2:C,A:A,"<="&D2:D)),1

但它在第一个单元格后停止。所以我把平均函数分解成求和和计数以便除法。

计数数组使用此公式工作:

=iferror(ArrayFormula(countifs(A:A,">="&C2:C,A:A,"<="&D2:D)),1)

但是总和数组甚至没有超过第一个单元格:

=iferror(ArrayFormula(SUMIFS(B:B,A:A,">="&C2:C,A:A,"<="&D2:D)),1)

并且组合通过了第一个单元格,但计算全部归零:

=ArrayFormula(iferror(SUMIFS(B:B,A:A,">="&C2:C,A:A,"<="&D2:D)/countifs(A:A,">="&C2:C,A:A,"<="&D2:D),1))

我想要达到的是上个月的平均值。

如果有人能帮助我,我将不胜感激!

https://docs.google.com/spreadsheets/d/1XhoLl5hB-MpXFz9VS2aLqJOWbXk1d_7apnwKWFdDUlg/edit?usp=sharing

您正在无缘无故地尝试应用带有大量重复值的有点奇怪的结构逻辑。基本上,看起来你需要这个:

=ARRAYFORMULA(QUERY({TEXT(A2:A, "yyyy-mmm"), B2:B}, 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1 
  order by avg(Col2) desc 
  label avg(Col2)''", 0))


但如果你真的真的需要的话:

=ARRAYFORMULA(IF(LEN(A2:A), 
 IFERROR(VLOOKUP(TEXT(DATE(YEAR(A2:A), MONTH(A2:A)-1, 1), "yyyy-mmm"), 
 QUERY({TEXT(A2:A, "yyyy-mmm"), B2:B}, 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1", 0), 2, 0), 0), ))