【问题标题】:Excel First - Second Row Average IssueExcel 第一 - 第二行平均问题
【发布时间】:2014-05-08 14:14:31
【问题描述】:

我有旧的 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),"")

formula 在 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个垂直数字的平均公式插入Average - M Row中5923.00以上的任何单元格中。

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

【问题讨论】:

  • 写vba在第10个单元格输入公式并复制到表格末尾
  • 这不是好的解决方案。然后我需要 VBA 来处理所有事情,我的意思是这是一个很好的解决方案,但 atm 不可接受:( 工作簿太大,工作量太大。感谢回答。

标签: excel excel-formula average moving-average


【解决方案1】:

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

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

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

如果 if 语句错误,它不会向左和向上移动,因此没有错误,在 ROW 10 之后(包括第 10 行)它是正确的语句。

这在 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>A3) 来检查表格的排序方式: - 如果按最新 - 最旧(第一种情况)排序,则从左侧第一行开始平均,向下 10 位 - 如果排序相反,则如下所述:左一位,上九位,然后取十位。

像一个魅力,有点长,但它的工作原理!

【讨论】:

  • +1 好作品。请考虑通过单击旁边的空白复选标记来接受我们的答案之一。
【解决方案2】:

您可以为公式所在的行添加一个测试,并且仅在其为 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)),"")

【讨论】:

  • 这不太正确。因为当将公式粘贴到下一行时,平均计算错误的 10 个单元格,在 M11 需要 L2:L11,现在它在 M2,在 M3 它是 L3:L12,等等。所以当我们到达第 11 行这是完全错误的范围:(
  • 我没有改变你的基本公式。如果我提供的想法听起来正确,那么请调整您的公式以适应。如果没有,祝你好运!
  • 这个想法听起来不错,但我不知道如何调整它。我需要类似于你建议道格的东西,我的公式在 M11 字段中有效,然后 L2:L11 以上的平均值是正确的,但是当我将你的公式复制粘贴到第 2 行时,当它下降时,它会改变M11公式错了:(不知道我是否知道如何调整它:(如果可以的话,请帮帮我。谢谢。
  • 如何在满足条件之前不更改公式、单元格。就像 if() 那样做这个范围,但在满足条件之前不要增加范围。
  • 只需将其粘贴到 M11 中,然后复制到该列的其余部分。您会在前十行的公式中看到一些#REF 错误,但我认为这并不重要。
猜你喜欢
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 2023-04-02
  • 2019-03-12
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多