答案1
您不需要为此编写代码。在单元格 C12 中输入平均值公式=AVERAGE(A1:A12)
。然后选择 C1 到 C12 并向下拖动填充柄。
编辑澄清
填充柄会将选定范围向下复制,并保留选定范围的模式。在这种情况下,选定范围的前 11 个单元格为空白,只有第 12 个单元格包含公式。如果选择 C1 至 C12 并向下拖动填充柄,则接下来的 11 个单元格将为空白,而单元格 C24 将包含公式。继续向下拖动,将是另外 11 个空白单元格,直到单元格 C36 包含公式。
这就是模式。
答案2
使用这一页作为起点,您可以使用公式来MOD()
获取平均值。
从 C12 开始,输入此公式并向下拖动:
=IF(MOD(ROW(),12)=0,AVERAGE(OFFSET($A1,(ROW()-ROW($C12))*12,,12,)),"")
编辑:天哪,上面的代码太夸张了。请使用下面的代码:
=IF(MOD(ROW(),12)=0,AVERAGE(A1:A12),"")
答案3
这几行可以帮助您创建宏,以获取每 12 行的平均值。
笔记, 要获取前 12 行的平均值,请选择第 1 行的任意单元格,如 B1、C1 或 D1,然后运行此宏,然后只需填充该单元格即可获取另一组 12 行的平均值。
Sub Average()
ActiveCell.Formula = "=AVERAGE(OFFSET($A$1, (ROW() - ROW($A$1)) * 12, 0, 12, 1))"
End Sub
或者, 您也可以使用这个公式非 VBA 解决方案。
C2 =AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*12,,12,))
編輯: 两种解决方案都采用智能方法,其中获取平均值的行是可编辑的。
例如,如果Average of every 16 rows
需要计算,则非 VBA 解决方案*12,,12,
应替换为*16,,16,
同样地VBA 解决方案 *12,0,12,1
应该*16,0,16,1
注意:
- 填写非 VBA 公式。
- 根据需要调整公式和代码中的单元格引用。