如何在 Microsoft Excel 中仅对筛选后的单元格求和

17 Mar 2025 | 6 分钟阅读

Microsoft Excel 中的筛选器简介

在 Microsoft Excel 中,“筛选器”一词主要用于通过暂时消除视图中不相关的条目来显示相关数据。并且特定的数据将根据个人给定的标准进行筛选。

此外,筛选数据或单元格的主要目的是为了突出数据集的各个关键区域。

  • 例如,特定给定组织的按部门销售数据可以很容易地按给定位置进行筛选。因此,用户可以有效地查看选定部门在给定时间间隔内的销售额。

此外,在使用大量数据库时需要筛选器。作为广泛使用的工具之一,特定筛选器将综合视图转换为易于理解的视图。如果我们需要应用筛选器,数据集必须包含一个标题行,分别指定每个列的名称。

在本教程中,我们将讨论三种重要的方法,这些方法可用于计算 Microsoft Excel 中筛选单元格的总和,具体如下

  1. 如何使用 SUBTOTAL 函数仅汇总 Excel 中的筛选单元格?
  2. 在 Microsoft Excel 中使用 Aggregate 函数。
  3. 在 Microsoft Excel 中使用用户定义函数。

如何在 Microsoft Excel 中使用 SUBTOTAL 函数?

众所周知,“SUBTOTAL 函数”主要用于计算给定数据集中的小计。此函数的一些重要之处在于,它将提供各种选项,这些选项基本上可用于执行总计计算,例如

  • 求和。
  • 平均值。
  • 最大值和最小值。

并且 SUBTOTAL 函数提供 2 个可用于计算总和的选项;

  1. 其中第一个的工作方式与“SUM 函数”相同。
  2. 另一个是可见单元格的总计,这是我们的目标。

语法:Microsoft Excel 中 SUBTOTAL 函数的语法如下

其中

  1. Function_num:Function_num 主要是一个介于 1 到 11 或 101 到 111 之间的数字,指定需要用于小计的函数。
  2. Ref1, Ref2, 我们希望有效小计的单元格或范围。第一个 Ref 是必需的,不能忽略。

下面提到的公式,其主要目的是通过有效使用 SUBTOTAL 函数来汇总可见单元格

公式

其中,第一个参数就是函数编号。此外,在输入 SUBTOTAL 函数时会给出编号及其相关函数。然后我们将找出两个求和选项;9 和 109。

函数编号 9 是 SUM 函数的选项,而编号 109 也适用于手动隐藏的单元格。

之后,我们将从给定选项中选择 109,因此 SUBTOTAL 函数基本上会汇总选定筛选单元格的值

How one can sum only filter cells in Microsoft Excel

接下来对于第二个参数,我们可以开始引用单个单元格进行求和。我们已选择的可见单元格将自动变为 H6:H17

现在我们将得到结果

How one can sum only filter cells in Microsoft Excel

因此,此函数将有效地适用于隐藏行,但不适用于隐藏列。如果公式中引用的范围中存在任何隐藏行,则其相应的值将不包含在“SUBTOTAL 函数”的给定结果中。但是,如果存在任何隐藏列,那么不幸的是,这些特定的值可以很容易地进入 SUBTOTAL 的结果。

如何在 Microsoft Excel 中使用 Aggregate 函数?

AGGREGATE 函数在 Microsoft Excel 的特定数据库中返回一个聚合。所以问题是:它与 SUBTOTAL 函数有什么不同?

对于返回总和,两者之间的一些基本区别在于它们的工作方式相似,但只有在 AGGREGATE 函数的情况下,我们可以手动选择要包含或排除在总计中的内容。

现在我们将看到 AGGREGATE 函数的工作原理,它将返回可见单元格的总和。首先,我们将使用下面提到的公式

公式

与 SUBTOTAL 函数一样,我们首先输入函数编号。在此场景中,我们将假设数字 9 用于求和。

How one can sum only filter cells in Microsoft Excel

接下来,我们将获得 Aggregate 忽略的值的选项。在此示例中,我们需要在筛选行中包含值,只需将选项 5 设为:忽略隐藏 即可。

How one can sum only filter cells in Microsoft Excel

现在,对于特定数组。我们已输入 H6:H17

How one can sum only filter cells in Microsoft Excel

AGGREGATE 函数已忽略所有隐藏行,以汇总范围 H6:H17 中可见的值。

How one can sum only filter cells in Microsoft Excel

在此应注意,公式中的选项如何仅提及隐藏行而非列。为什么?原因是 AGGREGATE 函数主要也不适用于隐藏列。

在 Microsoft Excel 中使用用户定义的 VBA 函数

在此方法中,我们将使用用户定义函数来获取可见单元格的总和。不,我们不能随意在 Microsoft Excel 中创建函数;这是因为我们需要 VBA 以及 VBA 代码。

该代码可以通过 VBA 用于创建函数,然后该函数可以在特定工作表上有效地像所有其他函数一样使用。

我们为什么要费心创建函数?我们需要帮助在 SUBTOTAL 和 AGGREGATE 函数中忽略隐藏列。但是在此 VBA 函数中,我们可以让函数同时忽略隐藏行和列。

以下是我们如何在 VBA (Virtual Basic for Application) 中使用用户定义函数来汇总可见单元格的方法

步骤 1: 首先,我们将按下 Alt + F11 键以启动 VB,或者如果我们已添加 开发人员选项卡,我们可以转到 代码 选项卡并单击 Visual Basic 按钮。

步骤 2: VB 编辑器打开后,我们将单击 插入选项卡 并从给定列表中选择 模块

How one can sum only filter cells in Microsoft Excel

步骤 3: 在给定的 模块 窗口中,我们将复制并粘贴代码以添加函数

然后,将创建一个名为“SumVisible”的函数,该函数可用于计算给定数据集中可见的选定单元格的总和,同时忽略隐藏行和列中的值。

How one can sum only filter cells in Microsoft Excel

步骤 4: 之后,我们将关闭 VB。

步骤 5: 现在,在我们想要总计的单元格中,我们将输入如下公式

我们只需要输入创建的函数名称和范围。然后函数将汇总给定范围内的所有值并返回总计

How one can sum only filter cells in Microsoft Excel

注意:应该注意的是,隐藏行和列中的给定值将不包含在计算中。但是,一旦输入了特定公式,如果我们需要隐藏一行,则结果将进行调整以有效地排除隐藏值。但如果我们隐藏一列,则需要重新计算公式。

我们可以通过选择包含给定公式的单元格,进入单元格编辑模式,然后按 Enter 键来重新计算。