我有一个旧的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自动填充它。
答案 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()
返回公式所在行的编号。
=IF(AND(ROW()>=11,L2<>""),AVERAGE(OFFSET($L$1,ROW()-10,0):OFFSET($L$1,ROW()-1,0)),"")