EXCEL中,某列数据为日期格式,相应的另一列每天都有数据生成,求自动计算最近7天发生数据的平均值的公式

如题所述

如果每天只生成一个数据,并且顺序来,这样最好办,直接用average函数求最近7行的平均值
如果日期没有顺序,而且每天不确定有几笔数据:
=(SUMIF($A$1:$A$17,"<=" & A9,$B$1:$B$17)-SUMIF($A$1:$A$17,"<=" & A9-7,$B$1:$B$17))/7
上面公式假定a1:a17是日期区,b1:b17是对应的数据区,为了公式能拖动,用了绝对引用。公式是计算a9之前7天的平均值。
原理:a9之前的条件求和减去a9-7天之前的求和,除以7天。追问

是这样的,是一个月的时间内,每产生一天的数据,就求一下平均值,所有这样求的数据都只是在一个单元格内,就是说这个单元格的数据是根据每天产生新的数据后实时更新的。

追答

你可以把上边的a1:a17,b1:b17范围改为$a$1:$a$100,,这中间含有许多空白的单元格,没关系,你以后可以填写。或者范围更大,都没关系,当然2边要对应。如果你只要一个单元格来存放最新平均值,就把上边公式中的a9改为today()

追问

老大!这样算出来的数据和我手工算出来的数据不对呢!不过把公式中的等号去掉就对了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-16
设定A列为日期,B列为数据,在答案单元格输入:
=AVERAGEIF(A:A,AND("<"&DATE(YERA(TODAY()),MONTH(),DAY()+7,>&DATE(YERA(TODAY()),MONTH(),DAY()-7),B:B)追问

是这样的,是一个月的时间内,每产生一天的数据,就求一下平均值,所有这样求的数据都只是在一个单元格内,就是说这个单元格的数据是根据每天产生新的数据后实时更新的。