1

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

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

我能够使用这个谷歌电子表格公式根据时间戳成功过滤列数据。如果存在相应的 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

有任何想法吗?

4

1 回答 1

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) ''")

于 2013-05-30T22:14:32.723 回答