SUMIF 语句的 VBA 代码-需要内置附加条件

SUMIF 语句的 VBA 代码-需要内置附加条件

我正在尝试摸索一些 VBA 脚本。我在网上找到了这段代码,它允许在以下情况下执行 SumIf 函数:单身的条件满足。我想将其扩展为两个或三个条件。

    Function SumIfVisible(rng As Range, condition, rngSum As Range) As Double  
Dim i As Long
 For i = 1 To rngSum.Count

If rng(i) = condition And rngSum(i).EntireRow.Hidden = False Then
  SumIfVisible = SumIfVisible + rngSum(i)
End If
 Next I
End Function

为了澄清起见,我想见多位状况在多个范围。 IE条件1范围 D2:D200条件2条件 3范围 H2:H200

此外,范围可能有部分不同在特定意义上不满足价值观,但整体上满足条件,即条件1 = “Jan”,范围D2:D200包含日期如“1-Jan,2-Jan,3-Jan”等。“”中的所有日期都满足条件。SUMIFS 不允许对单元格值进行截断字符串选择。例如,选择包含“Jan”的每一行,即使它包含其他值,如“1,2,3”

请帮忙!

答案1

假设您的数据包含文本而不是格式化的日期d-mmm,那么这应该可以帮助您开始:

=SUMIFS(B1:B2,A1:A2,"*Jan")

或者如果你有实际日期:

=SUMIFS(B1:B2,A1:A2,">=1/1/2016",A1:A2,"<=1/31/2016")

B1:B2 是求和范围,A1:A2 是条件范围。

请注意,其中SUMIFS()包括隐藏的行,因此如果排除隐藏的单元格是您的标准的一部分,您将需要SUBTOTAL()AGGREGATE()如上所述。

相关内容