我试图通过一些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
为了澄清,我想满足多个范围内的多个条件。即,条件1在范围D2:D200中,条件2和条件3在范围H2:H200中。
此外,范围在特定意义上可能具有部分不同的值,但整体满足条件,即condition1 =“ Jan”,范围D2:D200包含日期,例如“ 1-Jan,2-Jan,3-Jan”等。所有日期在“”满足条件的情况下。SUMIFS不允许为单元格值选择截断的字符串。即选择包含“ Jan”的每一行,即使它包含诸如“ 1,2,3”之类的其他值
请帮忙!
假设您的数据包含文本而不是日期格式设置为的日期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()
如上所述的条件的一部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句