Excel第一 - 第二行平均问题

时间:2014-05-08 14:14:31

标签: excel excel-formula average moving-average

我有一个旧的Excel表格,我需要手动填写,我创建了新的Excel表格,在标题/标题单元格下的第一行输入公式时,我使用CTRL + T自动填充数据。

我的数据是旧的垂直:

Numbers     Average (for last 10 Numbers from Left Row)
5,780.00    
5,730.00    
6,600.00    
7,300.00    
6,120.00    
5,250.00    
5,210.00    
5,100.00    
5,770.00    
6,370.00    5923.00
6,000.00    5945.00
5,480.00    5920.00
5,120.00    5772.00
4,990.00    5541.00

这是它的外观,这就是我手动制作的方式。 公式是:

=IF(L11<>"",AVERAGE(L2:L11),"")

其中forumula在M行(平均值)并检查和计算L行(数字)。 但是要表格自动填充到最后一行,必须在第一行中制作公式,然后Excel自动填充。

Average:
5923.00 

来自这个数字:

    Numbers
    5,780.00    
    5,730.00    
    6,600.00    
    7,300.00    
    6,120.00    
    5,250.00    
    5,210.00    
    5,100.00    
    5,770.00    
    6,370.00

如何将L行中10个垂直数的平均公式插入到平均值为5923.00的任何单元格中 - M行。

我知道如何填充行,我可以复制公式,按CTRL + SHIFT + DOWN查找表格的末尾并粘贴公式,但是当新数据到来时(导入的CSV更新),新数据将不会被填充,我需要Excel自动填充它。

2 个答案:

答案 0 :(得分:1)

如果您需要的话,这里是所有人的答案,如果你有日期,旧数据和新数据,那么前10个项目的平均值,前10行无法计算,没有平均值的问题。 这是单向方向的解决方案:

=IF(AND((ROW())>=11,L2<>""),AVERAGE(OFFSET(M2,-9,-1,10)),"")

Offset的作用是从当前单元格M2上升+9个位置,然后它向左移动1个单元格,然后从那里向下移动10个标记该范围。

如果陈述是错误的,它不会左右上升,因此没有错误,包括ROW 10后它是真实的陈述。

使用Table中的Excel会更加复杂,当您按日期排序时,最新日期位于顶部,底部是您可以用于平均值的数据:

=IF($A$2>$A$3,AVERAGE(OFFSET(M2,0,-1,10)),IF(AND((ROW())>=11,L2<>""),AVERAGE(OFFSET(M2,-9,-1,10)),""))

我有第一个IF(A2&gt; A3)来检查表的排序方式: - 如果排序最新 - 最旧(第一种情况)则从左边的第一行和下面的10个位置取平均值 - 如果排序相反,则按照说明:左边一个地方,然后上升9,然后取10个范围。

像魅力一样,有点长,但它有效!

答案 1 :(得分:0)

您可以为公式所在的行添加一个测试,如果它是11或更高,则只返回结果。然后你可以在整个列表中输入它,它会自动填充:

=IF(AND(ROW()>=11,L11<>""),AVERAGE(L2:L11),"")

ROW()返回公式所在行的编号。

编辑:好的,这是一个更好的。把它放在M2中并复制下来:

=IF(AND(ROW()>=11,L2<>""),AVERAGE(OFFSET($L$1,ROW()-10,0):OFFSET($L$1,ROW()-1,0)),"")