excel表格公式动态计算“近7天的数据”如何实现?

想实现以下内容:
1、在D33表格填写公式,动态计算最近7天支出平均数;
2、假如今天是1月10日,那么在D33输出1月3日至1月9日的支出平均数,假如明天是1月11日,那么在D33输出1月4日至1月10日的支出平均数,动态的,怎么实现?谢谢~
3、另外同求大神解释下您的公式,谢谢,我想学习下。
您好,我这边是计算近7天的平均值,那怎么实现呢?

步骤如下:

1.计算A列中日期为最近7天的对应B列的数值和(为方便查看结果,已用红色标注,今天为2016年2月1日)

2.输入公式如下:

3.结果如下:这样每天都会自动计算A列日期为最近7天的数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-19

可以用SUMIFS函数实现。

因为SUMIFS函数的条件必须变为文本,所以给公式变量条件造成了很大麻烦,不过可以通过变通的方法解决问题,公式稍长。

=SUMIFS(D2:D32,A2:A32,">"&TEXT(TODAY()-7,"yyyy-mm-dd"),A2:A32,"<="&TEXT(TODAY(),"yyyy-mm-dd"))/7

很简单,就是用TODAY函数定义出今天的日期。今天的日期减去7,就是起计算日期的前一天。SUMIFS的条件之一,要合计大于那一天的数,另一个条件是今天,计算小于等于今天的数,两个条件同时应用,那么就是大于今天往前算七天前的那一天并且小于等于今天日期的这部分数据(刚好7天)。因为SUMIFS函数的条件部分只能用文本格式,不识别变量(函数),所以TODAY函数并不能直接用在条件中,需要用TEXT将其格式转换成文本格式,也就是SUMIF的条件之一,再用比较符号与之连接起来,形成一个SUMIFS认可的又具有变量的条件。将这七天的和求出来之后,直接除以7就可以了。

呃,SUMIFS用的比较多,用得顺手了,忘了一个更简便的函数AVERAGEIFS,直接求平均值。说明如上。只不过不用除以七了,它直接选了那七天范围内的数据,直接就计算平均了 。

公式如下:

=AVERAGEIFS(D2:D32,A2:A32,">"&TEXT(TODAY()-7,"yyyy-mm-dd"),A2:A32,"<="&TEXT(TODAY(),"yyyy-mm-dd"))

你自己套用进去,看看这个公式对不对。如果还有其他需求,可以私信,给联系方式。简单的函数可以免费制作,复杂的不免费。

PS:想公式再短几个字符的话,可以用如下公式:

=AVERAGEIFS(D2:D32,A2:A32,">"&TEXT(NOW()-7,"yyyy-m-d"),A2:A32,"<="&TEXT(NOW(),"yyyy-m-d"))

使用以上所有公式,需要注意的是,你的日期列中,不管怎么显示,日期数据必须是带准确年份的。年份不能错了。因为判断系统日期,是连年份一起判断的。

相似回答