MS Excel 2016:如何获取大量离散范围内数字的平均值?

MS Excel 2016:如何获取大量离散范围内数字的平均值?

我有一些数据分布在 6500 多行和 12 列中。有些列的值来自一组 3 个数字(输入列),而其他列则全都是唯一值(输出列)。

我正在使用 Excel 过滤器对输入列进行过滤,以根据特定的输入集过滤掉一些行。我认为 Excel 中的过滤器只是隐藏了不满足过滤器的行。我需要获取过滤后的输出列的平均值。过滤后的数据在行中没有连续或统一的位置,因此我无法(轻松)指定范围以使用平均值公式。

我如何获得过滤行的平均值?

样本数据 -关联

示例数据说明 - 列 A 和 B(输入列)从特定集合中获取其值(即分别为 {5,10,15} 和 {20,40,60})。列 C 和 D(输出列)在所有单元格中都有唯一值。假设我设置了如下过滤器:

在 A 列上用 过滤所有行value=5。这样会过滤掉第 1、2、7、10 行。现在我希望获取 C 列和 D 列中这些过滤行值的平均值。

答案1

答案是=SUBTOTAL(1,...)。它只考虑可见的单元格。

例如

=SUBTOTAL(1,C1:C12)
=SUBTOTAL(1,C:C)
=SUBTOTAL(1,D1:D12)
=SUBTOTAL(1,D:D)

SUBTOTAL 是一个函数,它允许您执行不同类型的聚合计算(例如 SUM、AVERAGE、COUNT、MAX 等),以及选择是否包含手动隐藏的值。第一个参数指定您想要哪个聚合函数,以及是否忽略手动隐藏的值。对于 AVERAGE,参数值包括1隐藏值,101排除隐藏值。通过过滤器隐藏的值始终被排除,因此1101适用于此示例。您还可以包含非连续范围的列表,它不限于单个范围规范。有关您可以使用 SUBTOTAL 做什么的更多说明,请参阅此链接

答案2

按下=IF($D$16=A1,C1,"")F1 并拖动直到 F12。

然后,放入=AVERAGE(F:F)E16。

并在 D16 中输入值“5”。

完毕。

p/s :如果必须满足多个条件,请使用 if()、or() 或 and()。然后使用 average() 获得所需的结果。

希望能帮助到你。 ( :

相关内容