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 AverageSummarize Values By .您还可以在 Custom Name:.

中重命名显示的字段名称

注意:添加数据后,右击Table和selectRefresh可以看到新的数据。