平均值Excel公式

时间:2016-05-18 19:58:33

标签: excel array-formulas

如何制作一个能够采用m周平均值的n周平均值的公式?

假设我在A2:A21中有数据,而在D21,我希望8周平均4周移动平均值达到A21。所以我的想法是

{=AVERAGE(AVERAGE(OFFSET(A21,-4+1-ROW(OFFSET(A1,0,0,8))+1,0,4)))}

例如,使用此数据:

data    4 wk aver   8 wk avg avg
79      
79      
66      
38  66  
34  54  
13  38  
22  27  
50  30  
40  31  
98  53  
81  67  46
27  62  45
64  68  47
12  46  48
83  47  50
94  63  54
4   48  57
41  56  57
4   36  53
6   14  47

我正在寻找一个计算47的公式...我的公式计算为57.8。

1 个答案:

答案 0 :(得分:0)

答案是在内部平均值上使用SUBTOTAL()。这将返回一列平均值,因此外部AVERAGE()将具有正确的行为。

{=AVERAGE(SUBTOTAL(1,OFFSET(A21,-4+1-ROW(OFFSET(A1,0,0,8))+1,0,4)))}

原始解决方案不起作用的原因是因为内部AVERAGE只是取了所有数组的总平均值,而不是返回其各个平均值的列。当你需要做这种事情时,我发现这个SUBTOTAL()技巧很有用。