如何计算与特定日期范围匹配的Google电子表格中的元素

时间:2013-05-30 14:20:07

标签: google-sheets

我的列中有一些数据,第一列和数据列中有时间戳。

A             B         C         D
+++++++++++++++++++++++++++++++++++
20.5.2011     1         2         5
18.5.2011     3         5         4
12.5.2013     4         7         5

我可以使用此Google电子表格公式根据时间戳成功过滤columndata。如果存在相应的2011时间戳,则下面返回列B中所有整数的总和。

=ArrayFormula(SUMIF(TEXT($A:$A;"yyyy");year(today())-1;$B:$B))

以上总结了b列的值1和3,并返回4

问题是,如何计算上述值1和3的平均值,得出2?我目前的方法是将上述公式除以与日期标准匹配的项目的count(),但我无法使其工作。

=ArrayFormula(SUMIF(TEXT($A:$A;"yyyy");year(today())-1;$B:$B))/WFORMULA FOR THE DIVISOR

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可以像使用SUMIF一样使用COUNTIF:

=ArrayFormula(SUMIF(TEXT($A:$A;"yyyy");YEAR(TODAY())-1;$B:$B)/COUNTIF(TEXT($A:$A;"yyyy");YEAR(TODAY())-1))

(这将返回2012年所有参赛作品的平均值)。

您可以使用比较数组中的YEAR函数来简化这一点:

=ArrayFormula(SUMIF(YEAR($A:$A);YEAR(TODAY())-1;$B:$B)/COUNTIF(YEAR($A:$A);YEAR(TODAY())-1))

您还可以使用QUERY轻松生成总和,平均值或计数表:

=QUERY(A:B;"select year(A), avg(B) where A is not null group by year(A) label year(A) 'Year', avg(B) 'Average'")

如果您只想将2012年的平均值作为单一值:

=QUERY(A:B;"select avg(B) where year(A) = "&(YEAR(TODAY())-1)&" group by year(A) label avg(B) ''")