如何在 excel 中将 subtotal 与 averageif 结合使用


您可以使用以下公式在 Excel 中组合SUBTOTALAVERAGE函数:

 =AVERAGE(IF(SUBTOTAL(2,OFFSET( C2 ,ROW( C2:C11 )-ROW( C2 ),0)),IF( B2:B11 ="Guard", C2:C11 )))

这个特定的公式允许您计算范围 C2:C11 中的值的平均值,其中范围 B2:B11 中的相应值等于“保留”,即使在以某种方式过滤该单元格范围之后也是如此。另一个。

下面的例子展示了如何在实践中使用这个公式。

示例:如何在 Excel 中将 SUBTOTAL 与 AVERAGEIF 结合使用

假设我们有以下数据集,其中包含有关各种篮球运动员的信息:

接下来,我们过滤数据以仅显示西部联盟球员所在的行。

为此,请突出显示单元格区域A1:C11 。然后单击顶部功能区的“数据”选项卡,然后单击“过滤器”按钮。

然后单击Conference旁边的下拉箭头,并确保仅选中West旁边的框,然后单击OK

数据将自动过滤以仅显示 Conference 列等于West的行:

如果我们尝试使用AVERAGEIF()函数来计算 Position 列值等于“Guard”的 Points 列值的平均值,它实际上会返回等于“Guard”的行的点数平均值。”在原始数据集中:

相反,我们需要使用以下公式:

 =AVERAGE(IF(SUBTOTAL(2,OFFSET( C2 ,ROW( C2:C11 )-ROW( C2 ),0)),IF( B2:B11 ="Guard", C2:C11 )))

以下屏幕截图显示了如何在实践中使用该公式:

此公式返回正确的平均值21.25

我们可以通过手动平均 Position 列等于“Guard”的行的点值来确认这是正确的:

平均后卫得分:(12 + 28 + 30 + 15) / 4 = 21.25

其他资源

以下教程介绍了如何在 Excel 中执行其他常见操作:

如何删除 Excel 中筛选的行
如何在 Excel 中计算筛选的行数
如何在 Excel 中添加筛选行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注