Excel:基于动态范围计算滚动平均值

时间:2018-08-22 21:13:33

标签: excel excel-formula moving-average rolling-average

我正在尝试根据动态范围计算滚动平均值。举个例子,我的数据集如下所示。我正在尝试根据范围“框号”计算参数“用户数”的滚动平均值。 (12、13、14 ...)。通常,可以通过计算前N行的平均值然后将其向下拖动来计算滚动平均值。但是,这里的问题不是。的用户数。列各不相同,因此我不能使用传统的滚动平均法。

数据集 (请考虑“框号和用户”列下不同行中的所有值)

框号= 12、12、12、13、13、14、14、14、14、14

用户= 5、5、8、6、8、10、8、3、5、1

所以,我正在寻找这样的结果。

结果 (请考虑“框号”和“用户滚动平均值”列下不同行中的所有值)

框号= 12、13、14

(用户数)滚动平均值= 6、7、5.4

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

当您说移动平均线时,您是说一种正在滚动的“平均”吗?您的示例仅显示了条件平均值,而不是滚动平均值。

似乎可以使用averageif()解决您的问题。 对于更复杂的情况,可以将公式average()与内部if()公式一起使用,该公式指定要匹配的条件,以便计算平均值。这将成为一个数组公式,必须以Ctrl + Shift + Enter或等效的形式输入。

假设您的Box数据位于B1:K14中,而Users数据位于B2:K14中。同时获得方框12的结果:

{= AVERAGE(IF(B1:K1 = 12,B2:K2,“”))}

= AVERAGEIF(B1:K1,12,B2:K2)

当然,条件可以在相邻的单元格中,以便可以轻松地将其扩展到其他Box甚至User。

答案 1 :(得分:0)

有两个部分。

PART 1

要解决动态范围,建议您使用表格。如果您的数据集是这样:

Dataset

然后单击数据集,然后从Table命令选项卡中选择Insert。确保已选择My table has headers

结果应如下所示:

Table

颜色可能会因您的版本和设置而异。

PART 2

要获取基于此表的平均值,请单击表,然后从Pivot Table命令选项卡中选择Insert。接受默认值,您将最终在空白页数据透视表的新表上。

Box No.字段拖到Rows块,将Users字段拖到Values块。单击User块中Values名称右侧的箭头,然后选择Value Field Settings...,然后在Average中选择Summarize Values By。您还可以在Custom Name:中重命名显示的字段名称。

注意:添加数据后,右键单击数据透视表并选择Refresh以查看新数据。

enter image description here