VBA Microsoft Excel 中的 SUMIF 函数

2025 年 2 月 28 日 | 阅读 18 分钟

在 Microsoft Excel 中,相应的 **“SUMIF”** 函数被认为是一个强大的工具,主要用于简化满足特定条件的数值求和过程,使其成为有效数据分析和有效管理的宝贵工具。在处理大量数据的情况下,手动筛选数字以计算通常符合特定条件的总计可能非常困难且耗时。这时 **`SUMIF`** 就显得尤为重要了。

该函数主要允许我们定义一个条件或标准,该条件或标准充当我们要对其进行求和的数据的过滤器。例如,如果我们正在处理一份销售报告,并且需要计算特定产品的总销售额或特定数据范围内的总销售额,那么在这种特定情况下,**“SUMIF”** 可以很好地自动化此过程。只需应用一个条件,例如将所有销售额汇总为 **“Cherry”**,该函数就会快速扫描数据集,识别所有相关条目,并将它们加起来。这种应用条件的能力使得 **`SUMIF`** 在各种财务分析、预算、库存管理以及任何其他需要数据细分发挥重要作用的任务中都极其有用,它还将帮助用户在无需手动分析每个条目的情况下快速获得见解并做出数据驱动的决策。因此,**`SUMIF`** 函数不仅可以节省时间,还可以减少潜在的错误,从而确保更准确、更高效的数据分析。

VBA 在 Microsoft Excel 中是什么意思?

在 Microsoft Excel 中,我们都知道 **VBA** 是 **“Visual Basic for Application”** 的首字母缩写。VBA 主要是一种由 **Microsoft Corp.** 开发的编程语言,它被有效地集成到主要的 Microsoft Office 应用程序中,即 Word、Excel 和 Access。

VBA SUMIF Function in Microsoft Excel

尽管如此,相应的 VBA 编程语言允许用户有效地访问 MS Office 应用程序中未提供的所有功能。用户还可以利用 VBA 轻松自定义应用程序以满足其业务特定需求,例如有效高效地创建用户定义函数、自动化与计算机相关的各种过程,以及有效地访问 **Windows API**。

主要亮点

使用 Microsoft Excel 中的 **VBA SUMIF** 函数的各种关键亮点如下:

  1. 需要注意的是,学习 VBA 编程将最终帮助 Microsoft Office 用户有效地访问各种 Office 应用程序中未直接提供的各种功能。
  2. 还应注意的是,相应的 VBA 可有效地用于分析大型数据集以及创建和维护复杂的财务模型。
  3. 录制宏相对简单,不需要 VBA 代码方面的任何固有知识,并且适用于简单过程。但是,此特定方法比其他方法更具可定制性。

列出 VBA 在 Microsoft Excel 中的各种用途。

我们都知道,VBA 主要用于执行各种功能,并且不同类型的用户主要使用不同的编程语言来执行各种功能。以下是 VBA 在日常活动中使用的不同方:

  1. 普通用户:大多数用户在日常生活中都会定期使用 Microsoft Office 应用程序,即 Microsoft Excel。VBA 语言主要免费包含在 Microsoft Office 套件中,以使用户执行任务更加轻松。VBA 主要用于自动化任务以及执行除电子表格创建和组织之外的许多其他功能。
    • 例如,让我们假设用户希望自动化 Microsoft Excel 的某些方面,这主要涉及以下内容:重复性任务、频繁任务、报表生成等。用户可以在 Microsoft Excel 中轻松创建一个 VBA 程序(宏),该程序通常会生成、格式化并打印包含条形图等图形表示的月度销售报告。他们只需单击一下即可执行程序,然后 Microsoft Excel 将根据公司各自的需求轻松生成报告。
  2. 计算机专业人士:在这个现代世界中,各种计算机专业人士现在可以有效地利用 VBA 来执行更复杂的任务,否则这些任务将需要更长的时间和更多的资源来完成。
    • 例如,用户可以有效地利用 VBA 创建 Microsoft Excel 的自定义加载项,这些加载项通过引入 Microsoft Excel 中未提供的​​新函数来为应用程序提供附加功能。
      尽管如此,VBA 还有助于计算机专业人士有效地执行各种复杂功能,例如复制大行代码、在 MS Office 应用程序中设计语言,以及有效地合并两个或多个不同程序的函数。
  3. 企业用户:VBA 不仅对个人有用,而且对各种企业用户也很有帮助。公司还可以利用 VBA 编程语言来自动化关键业务流程和内部流程。例如会计程序、跟踪会议记录、实时处理销售订单、计算复杂数据等功能,可以通过在 Microsoft Excel 中使用 VBA 来实现。
    通常,VBA 还有助于有效地自动化上述任务,以提高内部业务流程的效率。它还允许公司将数据整合到云中,以便可以有效地从世界任何地方访问。

Microsoft Excel 中 VBA SUMIF 函数的含义是什么?

“在 Microsoft Excel 中,相应的“VBA SUMIFS 函数”主要提供了一个灵活的工具,该工具用于添加基于各种标准的数据。通过允许指定多个标准,它扩展了 SUMIF 函数的功能。”

现在,让我们假设我们有一组数据,主要包含有关各种项目的信息,包括它们的数量、成本以及总成本,并且在此特定示例中,我们实际上希望计算成本超过 20 的项目的总成本之和,并且可以通过使用 **VBA SUMIFS** 函数有效地实现这一点。

VBA SUMIF Function in Microsoft Excel

此外,在此特定的 VBA 示例中定义了一个名为 **_“TestSumIfGreaterThan”_** 的相应 Sub 过程。在此过程中,单元格 D10 被赋予公式 **=SUMIFS(D2:D9, C2:C9, “>20”)**。现在,假设范围 **C2:C9** 中的相应值大于 20,此公式将确定范围 D2 到 D9 的值之和。

在这里,我们将演示如何在 VBA 中有效地执行各种条件求和操作,即通过使用 **SUMIFS** 函数根据给定的值以上的更重要的条件来对数字进行求和。

代码


VBA SUMIF Function in Microsoft Excel

当我们继续运行此特定代码行时,它将把 **SUMIFS** 公式应用于单元格 D10,从而提供有效满足指定条件的值的总和。

VBA SUMIF Function in Microsoft Excel

Microsoft Excel VBA 中 SUMIF 函数的语法

在 Microsoft Excel VBA 中用于 **SUMIFS** 函数的语法如下:

Application.WorksheetFunction.SumIfs(sum_range, criteria_range1, criteria1, [criteria_range2], [criteria2], …)

语法描述
sum_range此语法主要用于查找我们要对其进行求和的单元格范围。
criteria_range1它主要负责重定向我们要应用标准的第一个单元格范围,尽管如此,这是有效评估第一个条件的地方。
criteria1我们需要将标准应用于第一个 criteria_range1,它可能是数字、文本、表达式或单元格引用。
[criteria_range2]我们要对其应用标准的附加单元格范围主要被视为语法的可选部分。
[criteria2]我们希望将标准应用于相应的可选 criteria_range2。如果不需要,语法的其他可选部分也可以留空。
...然而,它被称为额外的 **criteria_range** 对和标准,可以轻松提供以有效地指定多个条件。

如何在 Microsoft Excel 中轻松使用 VBA SUMIF 函数?

我们都知道,可以通过仔细遵循下面提到的步骤,在 Microsoft Excel 中使用 **VBA SUMIF** 函数。然后,通过遵循这些步骤,可以轻松地在选定的数据集上实现各自的目标。

步骤 1:打开 VBA 编辑器:首先,我们需要打开 Microsoft Excel,然后从键盘上按 **ALT + F11** 快捷键以高效地打开 VBA 编辑器。

VBA SUMIF Function in Microsoft Excel

步骤 2:插入新模块:在此步骤中,我们需要通过单击菜单中的 **“插入”选项** 来插入一个新模块。然后,我们从中选择 **“模块”**。

VBA SUMIF Function in Microsoft Excel

步骤 3:在模块中编写代码:在此特定步骤中,在创建的模块中,我们将编写我们的 **VBA 代码**,该代码将有效地利用 **SUMIFS** 函数。编写代码后,我们将定义一个 **sub 过程**,通过该过程有效地编写代码。

步骤 4:声明变量(可选):还可以声明计算所需的任何特定变量。尽管此特定步骤是可选的,但为了更好地组织和有效的数据可读性,强烈建议这样做。

步骤 5:利用函数:在此特定步骤中,我们将有效地利用 **“Application.WorksheetFunction”** 对象中的 **VBA SUMIFS 函数** 来执行主要基于指定标准的求和操作。并且还向相应的 **SUMIFS** 函数提供所有必需的参数。

步骤 6:显示消息:还可以选择通过使用消息框 (MsgBox) 显示结果,将其写入单元格,或者尽管如此,也可以在 VBA 代码中有效地用于进一步计算。

步骤 7:保存并运行 VBA 代码:在此步骤中,我们必须保存代码。保存代码后,我们将通过在 **VBA 编辑器** 中按 **F5** 快捷键来运行它。

示例

现在,我们将看到有助于我们更轻松地理解 VBA **SUMIF 函数** 概念的各种示例,并且还可以帮助我们根据工作场所的需求来实现它们。

#示例 1:小于数值条件

在此特定示例中,我们有一个包含两列的数据集。为此,我们希望计算 **B 列** 中值的总和,其中 **A 列** 中的相应值小于此数据集中的三个值,并使用 **VBA SUMIFS 函数**。

VBA SUMIF Function in Microsoft Excel

步骤 1:定义子程序:在定义的新模块中,我们将开始定义一个名为 **Example1** 的子程序。

代码


VBA SUMIF Function in Microsoft Excel

步骤 2:在此步骤中,在有效地声明名为 result 的变量之后,使用 **Double 数据类型** 来有效地存储计算结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 3:使用 SUMIFS 函数:我们还可以使用 **“Application.WorksheetFunction”** 对象中的 **SUMIFS 函数** 来对 B 列中的值进行求和,这些值主要基于 A 列中的相应值小于 3 的条件。

代码


VBA SUMIF Function in Microsoft Excel

步骤 4:在此步骤中,我们将有效地使用消息框来显示结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 5:保存宏并单击运行。当我们运行代码时,它将计算 B 列中相应值小于 3 的值的总和,并在消息框中显示结果。

VBA SUMIF Function in Microsoft Excel

完整的代码如下:

#示例 2:带日期的条件

在此特定示例中,我们包含了一个有效的数据集,该数据集主要由三列组成。**A 列** 主要包含日期,B 列通常代表每个相应日期销售的不同类型的水果,而 C 列有效地包含相应的销售金额。

VBA SUMIF Function in Microsoft Excel

但是,主要目标是有效地计算在 Microsoft Excel 中指定数据范围内销售的水果的销售金额总和。

步骤 1:创建子程序函数并声明变量:在此特定步骤中,在新模块中,我们将有效地创建一个名为 **Example2** 的新子程序。之后,我们需要声明一个名为 **“result as Double”** 数据类型的变量,用于有效地存储计算结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 2:使用 SUMIFS 函数进行求和计算:在此步骤中,通过使用 Microsoft Excel VBA 中的相应 **`SUMIFS`** 函数来对 C 列中的值进行求和,其中 A 列中的相应日期通常属于指定的数据范围(2024 年 1 月)。

代码


VBA SUMIF Function in Microsoft Excel

步骤 3:使用消息框显示结果:现在,在此步骤中,我们将有效地使用 **`MsgBox`** 函数来分别在给定的消息框中显示总和结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 4:运行代码并显示结果:当代码运行时,它将计算 A 列中相应日期通常在指定数据范围(2024 年 1 月)内的 C 列中的值的总和,并将有效地显示结果在消息框中。

代码


VBA SUMIF Function in Microsoft Excel
VBA SUMIF Function in Microsoft Excel

实现上述示例的完整代码如下:

代码

#示例 3:使用 Microsoft Excel VBA 中的通配符进行字符串条件

为了实现此示例,让我们假设我们包含了一个跨越 A 到 F 列的数据集,其中包含有关水果的一些有用信息以及分配给该特定水果的代码。尽管如此,这里的主要目标是计算销售金额(D 列)的总和,其中水果类型(E 列)以 **“A”** 开头,水果代码(F 列)以 **“Z”** 结尾。

VBA SUMIF Function in Microsoft Excel

步骤 1:创建子程序和声明变量:首先,我们需要定义一个新的子程序函数,然后我们需要声明一个名为 **“result as Double”** 数据类型的变量,以便有效地存储计算结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 2:使用 SUMIF 函数:现在,在此特定步骤中,我们可以使用相应的 **VBA SUMIFS 函数** 来对 D 列中的值进行求和,这些值基于 E 列中的相应值以字母 **“A”** 开头,F 列中的值以字母 **“Z”** 结尾的条件。

代码

VBA SUMIF Function in Microsoft Excel

步骤 3:显示结果:我们需要有效地使用消息框来显示结果。

代码

VBA SUMIF Function in Microsoft Excel

步骤 4:运行代码并显示输出:现在,在此相应步骤中,当我们运行代码时,它将计算 D 列中相应值以字母 **“A”** 开头,F 列中的值以字母 **“Z”** 结尾的 D 列中的值的总和,然后它将分别在消息框中显示结果。

VBA SUMIF Function in Microsoft Excel

实现上述示例的完整代码如下:

代码

#示例 4:VBA SUMIFS + VLOOKUP 在 Microsoft Excel 中

在此示例中,我们包含了一个数据集,该数据集通常代表学生成绩以及他们在不同科目中的相应分数。现在,对于这组数据,我们将使用 **VBA SUMIFS 函数** 来计算获得考试 **“B”** 等级的学生的总分。尽管如此,我们还将使用 **Vlookup 函数** 为结果添加奖励分数。

VBA SUMIF Function in Microsoft Excel
VBA SUMIF Function in Microsoft Excel

步骤 1:创建子程序函数并声明变量:现在,在此特定步骤中,我们将开始定义一个子程序,并声明名为 result 和 **lookup_value** 的变量。**“result”** 将保存 B 等级学生的总分数,而 **“lookup_value”** 将存储我们感兴趣的等级,即 **“B”** 等级。

代码


VBA SUMIF Function in Microsoft Excel

步骤 2:使用 SUMIF 函数:在此特定步骤中,我们将使用 VBA SUMIFS 函数来计算 G 列中的值。然而,求和的标准需要基于 A 列中的值与存储在 lookup_value 变量中的查找值(当前设置为 **“B”**)的匹配。

代码


VBA SUMIF Function in Microsoft Excel

步骤 3:使用 VLOOKUP 函数:现在,在此特定步骤中,我们将使用 **VBA 中的 VLOOKUP 函数** 来检索与 B 等级相关的奖励积分,这些积分来自 I 列和 J 列。

此函数在 I 列(等级)中搜索值 **“B”**,然后在搜索后通常返回 J 列中的相应奖励积分。然后将检索到的奖励积分添加到结果中。

然后,我们将使用消息框函数显示结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 4:现在保存宏,然后单击运行选项:当我们运行代码时,它将计算 G 列中与指定条件(“B”)匹配的 A 列中相应值的总和。然后,它将通过查找单元格 **“J”** 中的奖励值来添加 **VLOOKUP 函数** 的结果,并有效地在消息框中显示结果。

VBA SUMIF Function in Microsoft Excel

实现上述示例的完整代码如下:

代码

#示例 5:VBA SUMIFS + SUM 函数在 Microsoft Excel VBA 中

现在,对于此相应示例,我们将假设我们被分配了一个数据集,并且对于这组数据,我们实际上希望计算 B 列中的值之和,其中 A 列中的相应值大于 3,C 列中的值不等于 0,此外,还加上 D 列中的值之和。

通常,可以通过以下方式使用 VBA SUMIFS 函数轻松实现这一点:

步骤 1:创建子程序并声明变量:在此步骤中,我们将开始有效地创建子程序,然后我们需要声明一个名为 result 的变量,其数据类型为 **VBA 中的 Double**,以便有效地存储计算结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 2:编写代码:在此特定步骤中,我们将编写代码以有效地计算 **“Sum”**,使用 VBA SUMIFS 和 SUM 函数。

代码


VBA SUMIF Function in Microsoft Excel

尽管如此,我们可以有效地利用 VBA SUMIFS 函数来对 B 列中的值进行求和,这些值主要基于 A 列中的相应值大于 3 且 C 列中的值不等于 0 的条件。我们还可以有效地将 SUM 函数的结果添加到 SUMIFS 结果中。

步骤 3:显示结果:在此步骤中,我们需要分别使用消息框来显示结果。

代码


VBA SUMIF Function in Microsoft Excel

步骤 4:当代码运行时,它将计算 B 列中 A 列中的相应值大于 3 且 C 列中的值不等于 0 的值的总和。然后,它将添加 **SUM Excel 函数** 的结果,并有效地在消息框中显示最终结果。

VBA SUMIF Function in Microsoft Excel
VBA SUMIF Function in Microsoft Excel

实现上述示例的完整代码如下:

代码

注意事项

在使用 Microsoft Excel VBA SUMIF 函数时,个人需要记住的各种要点如下:

  1. 应该记住,相应的 VBA SUMIFS 多列通常能够基于多个列上的各种多个条件来对值进行求和,从而利用其有效处理多个条件的强大功能。
  2. VBA SUMIFS 数组还可以通过处理多个列中的数据作为数组来处理各种复杂计算,为数据分析任务提供灵活性和强大功能。
  3. VBA SUMIFS 具有动态范围支持,可以根据数据变化自动调整范围大小,从而无需手动更新范围即可确保计算准确。
  4. 还应该记住,相应的 VBA SUMIFS 函数跨越各种多个工作表,通过允许合并和汇总满足特定条件的值,从而实现全面的数据分析。

常见问题解答 (FAQs)

关于 Microsoft Excel VBA SUMIF 函数使用的各种常见问题如下:

问题:我们能否在 VBA Microsoft Excel 中有效地使用 SUMIFS 函数的多个条件?

答案:是的,当然,相应的 VBA SUMIFS 函数主要允许我们使用各种可用条件。当将附加条件添加为范围和条件参数对时,可以同时应用复杂条件。凭借此功能,用户可以进行更彻底的数据分析,并获得基于预定参数的确切结果。

问题 2:我们能使用 VBA SUMIFS 函数的动态范围吗?

答案:是的,我们可以轻松地使用 SUMIFS 函数的各种动态范围。根据电子表格中的数据动态修改自身的范围称为动态范围。这通常通过命名范围或公式(如 OFFSET、INDEX 和 MATCH 函数)来实现。

通常,VBA SUMIFS 函数可以灵活且自适应地进行数据分析,它接受所有这些动态范围作为参数。通过使用动态范围,用户可以处理不同大小的数据集,还可以自动化操作,而无需进行手动修改,这提高了与数据操作相关的作业的准确性和效率。

问题 3:SUMIFS 是否支持 Microsoft Excel VBA 中的数组公式?

答案:是的,**VBA SUMIFS** 函数通常支持 VBA 中的数组公式。我们还可以一次计算多个值并获得一组结果,方法是使用数组公式。当我们使用 **VBA SUMIFS** 数组公式时,我们还可以对多个范围应用复杂的条件,并快速计算基于各种因素的总和。**VBA SUMIFS** 可以执行更复杂的数据分析任务,并通过数组公式扩展其功能,为用户提供对其数据集的全面见解。