Excel:根据动态范围计算滚动平均值
Excel: Calculate a Rolling Average Based on Dynamic Range
我正在尝试根据动态范围计算滚动平均值。举个例子,我的数据集如下所示。我正在尝试根据范围 "Box no."(12、13、14...)计算参数 "No. of Users" 的滚动平均值。通常,可以通过计算前N行的平均值然后向下拖动来计算滚动平均值。但是,这里的问题不是。 Box 号的用户数列各不相同,因此我不能使用传统的滚动平均法。
Data-set(考虑Box No.和Users列下不同行的所有值)
箱号 = 12, 12, 12, 13, 13, 14, 14, 14, 14, 14
用户 = 5、5、8、6、8、10、8、3、5、1
所以,我正在寻找这样的结果。
Result(考虑Box No.和Rolling Average for No. Users列下不同行中的所有值)
箱号=12、13、14
(用户数量)的滚动平均值 = 6、7、5.4
如有任何帮助,我们将不胜感激。
当您说移动平均线时,您是指一种正在滚动的 "average if" 吗?您的示例仅显示条件平均值,而不是滚动平均值。
看来您的问题可以使用 averageif()
来解决。
对于更复杂的情况,您可以使用公式 average()
,其中包含一个 if()
公式,指定您要匹配的条件,以便计算平均值。这将成为一个数组公式,必须按 Ctrl+Shift+Enter 或等价方式输入。
假设您的 Box 数据在 B1:K14 中,而您的用户数据在 B2:K14 中。您将获得 Box 12 的结果,其中包括:
{=平均(如果(B1:K1=12,B2:K2,""))}
和
=AVERAGEIF(B1:K1,12,B2:K2)
当然,条件可以在相邻的单元格中,这样可以很容易地扩展到不同的盒子甚至用户。
这有两个部分。
第 1 部分
为了解决动态范围问题,我建议你使用Table。如果你的数据集是这样的:
然后单击数据集并从 Insert
命令选项卡中单击 select Table
。确保您已 My table has headers
selected。
结果应如下所示:
颜色可能因您的版本和设置而异。
第 2 部分
要根据此 table 获得平均值,请在 Insert
命令选项卡中单击 table 和 select Pivot Table
。接受默认值,您将在新的 sheet 上得到一个空白的 Pivot Table。
将 Box No.
字段向下拖动到 Rows
块,将 Users
字段向下拖动到 Values
块。单击 Values
块中 User
名称右侧的箭头和 select Value Field Settings...
然后 select Average
在 Summarize Values By
.您还可以在 Custom Name:
.
中重命名显示的字段名称
注意:添加数据后,右击Table和selectRefresh
可以看到新的数据。
我正在尝试根据动态范围计算滚动平均值。举个例子,我的数据集如下所示。我正在尝试根据范围 "Box no."(12、13、14...)计算参数 "No. of Users" 的滚动平均值。通常,可以通过计算前N行的平均值然后向下拖动来计算滚动平均值。但是,这里的问题不是。 Box 号的用户数列各不相同,因此我不能使用传统的滚动平均法。
Data-set(考虑Box No.和Users列下不同行的所有值)
箱号 = 12, 12, 12, 13, 13, 14, 14, 14, 14, 14
用户 = 5、5、8、6、8、10、8、3、5、1
所以,我正在寻找这样的结果。
Result(考虑Box No.和Rolling Average for No. Users列下不同行中的所有值)
箱号=12、13、14
(用户数量)的滚动平均值 = 6、7、5.4
如有任何帮助,我们将不胜感激。
当您说移动平均线时,您是指一种正在滚动的 "average if" 吗?您的示例仅显示条件平均值,而不是滚动平均值。
看来您的问题可以使用 averageif()
来解决。
对于更复杂的情况,您可以使用公式 average()
,其中包含一个 if()
公式,指定您要匹配的条件,以便计算平均值。这将成为一个数组公式,必须按 Ctrl+Shift+Enter 或等价方式输入。
假设您的 Box 数据在 B1:K14 中,而您的用户数据在 B2:K14 中。您将获得 Box 12 的结果,其中包括:
{=平均(如果(B1:K1=12,B2:K2,""))}
和
=AVERAGEIF(B1:K1,12,B2:K2)
当然,条件可以在相邻的单元格中,这样可以很容易地扩展到不同的盒子甚至用户。
这有两个部分。
第 1 部分
为了解决动态范围问题,我建议你使用Table。如果你的数据集是这样的:
然后单击数据集并从 Insert
命令选项卡中单击 select Table
。确保您已 My table has headers
selected。
结果应如下所示:
颜色可能因您的版本和设置而异。
第 2 部分
要根据此 table 获得平均值,请在 Insert
命令选项卡中单击 table 和 select Pivot Table
。接受默认值,您将在新的 sheet 上得到一个空白的 Pivot Table。
将 Box No.
字段向下拖动到 Rows
块,将 Users
字段向下拖动到 Values
块。单击 Values
块中 User
名称右侧的箭头和 select Value Field Settings...
然后 select Average
在 Summarize Values By
.您还可以在 Custom Name:
.
注意:添加数据后,右击Table和selectRefresh
可以看到新的数据。