我的列中有一些数据,第一列和数据列中有时间戳。
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
有什么想法吗?
答案 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) ''")