Vba:如何编写 sumif 和 sumifs 函数
您可以使用以下方法在 Excel 中使用 VBA 编写 SUMIF 和 SUMIFS 函数:
方法一:VBA中的SUMIF函数
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
仅当范围A2:A12中的相应值等于“Mavs”时,此特定示例才会对范围B2:B12中的值求和,并将结果分配给单元格E2 。
方法2:VBA中的SUMIFS函数
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
仅当范围A2: A12中的值等于“Mavs”并且范围B2:B12中的值大于 20 时,此特定示例才会对范围 C2:C12 中的值求和,然后将结果分配给单元格E2 。 。
以下示例展示了如何在 Excel 中的以下数据集(包含有关各种篮球运动员的信息)中实际使用这些方法:
示例 1:VBA 中的 SUMIF 函数
假设我们只想计算小牛队球员的得分列中的值总和。
我们可以创建以下宏来执行此 SUMIF 函数:
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
当我们运行这个宏时,我们会收到以下输出:
请注意,单元格E2包含值73 。
这代表小牛队球员得分栏中的值总和。
我们可以通过手动计算小牛队球员得分栏中的值总和来验证这是否正确:
小牛球员的总得分:22 + 10 + 29 + 12 = 73 。
示例 2:VBA 中的 SUMIFS 函数
假设我们只想计算满足以下条件的球员的助攻列中的值总和:
- 该球员是小牛队的一员。
- 该球员得分超过20分。
我们可以创建以下宏来执行此 SUMIFS 函数:
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
当我们运行这个宏时,我们会收到以下输出:
请注意,单元格E2包含值18 。
这代表了小牛队得分超过20分的球员得分栏中的数值总和。
注意:在此示例中,我们使用两个条件范围创建了 SUMIFS 函数,但您可以在WorksheetFunction.SumIfs方法中使用任意多个条件范围。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务:
VBA:如何编写 COUNTIF 和 COUNTIFS 函数
VBA:如何编写 AVERAGEIF 和 AVERAGEIFS 函数