如何在Excel中找到每六个单元格的平均值

时间:2016-02-02 19:28:56

标签: excel offset

这是一个相对常见的问题,因此我不想因为询问之前被问过的问题而被投票。我将解释当我使用StackOver Flow和其他来源回答这个问题时所采取的步骤,以便您可以看到我已尝试解决它而不解决问题。

我有一组值如下:

 O       P    Q      "R"   Z
6307    586 92.07   1.34    
3578    195 94.83   6.00    
3147    234 93.08   4.29    
3852    227 94.43   15.00   
3843    171 95.74   5.10    
3511    179 95.15   7.18    
6446    648 90.87   1.44    
4501    414 91.58   0.38    
3435    212 94.19   6.23    

我想取“R”行中前六个值的平均值,然后将该平均值放在Z的第六行的第六列中:

 O       P    Q      "R"   Z
 6307   586 92.07   1.34    
3578    195 94.83   6.00    
3147    234 93.08   4.29    
3852    227 94.43   15.00   
3843    171 95.74   5.10    
3511    179 95.15   7.18 6.49
6446    648 90.87   1.44    
4501    414 91.58   0.38    
3435    212 94.19   6.23        
414     414 91.58   3.49    
212     212 94.19   11.78   
231     231 93.44   -1.59 3.6   
191     191 94.59   2.68    
176     176 91.45   .75 
707     707 91.96   2.68    
792     420 90.95   0.75    
598     598 92.15   7.45    
763     763 90.66   -4.02   
652     652 91.01   3.75    
858     445 58.43   2.30  2.30

我使用了以下获得的公式

=AVERAGE(OFFSET(R1510,COUNTA(R:R)-6,0,6,1))

但是我收到的答案与我通过简单地取六个先前单元格的平均值得到的答案不同:

=AVERAGE(R1505:R1510)

然后我尝试了Stack OverFlow(excel averaging every 10 rows)对话中的以下代码,该对话与我想要的对话相似

=AVERAGE(INDEX(R:R,1+6*(ROW()-ROW($B$1))):INDEX(R:R,10*(ROW()-  ROW($B$1)+1)))

但是我无法得到类似我从死记硬背中得到的答案

==AVERAGE(R1517:R1522)

我还发现了下面的另一种方法但是无法准确地改变编码(例如F3到R1510)

=AVERAGE(OFFSET(F3,COUNTA($R$1510:$R$1517)-1,,-6,))

这样做给了我一个明显正面数据的负数。这是-6.95。

1 个答案:

答案 0 :(得分:4)

将其放入Z1并复制:

=IF(MOD(ROW(),6)=0,AVERAGE(INDEX(R:R,ROW()-5):INDEX(R:R,ROW())),"")

![enter image description here