VBA实战技巧09: 一个仅对满足条件的可见行求平均值的自定义函数
excelperfect
对满足条件的值求平均值,一般我们会使用AVERAGEIF函数,如下图1所示。
图1
如果隐藏了某些行,AVERAGEIF函数仍会对所有行中满足条件的值求平均值,并不会受到隐藏行的影响,如下图2所示。
图2
如果我们只想对满足条件的可见行求平均值,怎么办呢?最简单的方法就是使用VBA自定义一个函数,如下面的代码:
Function AVERAGEIfVISIBLE(range As range, criteria, average_range As range)
Dim i As Long
Dim iCount As Long
For i = 1 To average_range.Count
If range(i) = criteria And average_range(i).EntireRow.Hidden= False Then