如何计算每头奶牛 7 天产奶量的移动平均值,日期未排序。 Excel

How to calculate moving average 7 days of milk production of a each cow, Dates not sorted. Excel

每天记录每头奶牛的日产奶量。我想消除噪音。因此,我想在 Excel 中使用 7 天(前 3 天和后 3 天,包括当前生产日期)的移动平均线。

数据未按日期排序,因此无法使用偏移功能。

附加信息:"Date" 在 A 栏中,B 栏中的奶牛编号和 C 栏中的牛奶。行是从 1-22。

预期结果将是每头奶牛 7 天的牛奶移动平均值(<=当前日期前 -3 天和每头奶牛当前日期后 < 天+3 天。

用于计算过去一年滚动平均值的类似函数是 =AVERAGEIFS(B2:K2,B1:K1,">"&TODAY()-365,B1:K1,"<"&TODAY())。可以使用类似的公式。

使用 sumproduct 公式时出现问题:7 天的无数据应为 0 7D 平均值。然而给出 1.79 .Rolling AVerage with the Sumproduct formula Problem

这可能不是最好的解决方案,但它确实有效。我们可以通过以下方式使用 countifs: 1. 创建一个将牛号和日期(我称之为 CowNoDate)与格式 CowNo +“-”+日期(作为数字)组合在一起的列。我把它放在C列。 2.按这个新列对列表进行排序 3. 在 E 列中使用以下公式计算 运行 平均值:

=SUMIFS(D:D,C:C,">="&B2&"-"&(A2-3),C:C,"<="&B2&"-"&(A2+3))

您可以尝试结合使用 SUMPRODUCT 和 AVERAGE 函数。注意这是一个数组公式,所以需要用Ctrl+Shift+Enter键输入:

=SUMPRODUCT(AVERAGE(IF(($B:$B=B2)*($A:$A>=(A2-3))*($A:$A<=(A2+3)),$C:$C)))

结果:

前三个条目 (D2:D4) 的平均值与 C 列中的值完全相同,因为没有提供 1 月 23 日至 29 日范围内的其他日期。其余值 (D5:D22) 应正确显示 7 天平均值。