看图说话
===数据源===
===条件个数,条件和,和/个数=平均,AVERAGEIF平均===
你能不能看出问题
【我的自定义函数】
'AVERAGEIF是条件求平均,有一个小Bug,就是单元格没有数据时不计个数的,如:123空4的平均数为10/5,但计算时是10/4
'所以为了解决此问题自定义条件求平均
'MyAverageIfs(条件区域,条件单元格,平均区域)
'使用=MyAverageIf($B$3:$B$17,G3,$C$3:$C$17)
Function MyAverageIf(rng As Range, conrng As Range, AVrng As Range)
Dim i%, j%, rng1Col%, rng2Col%
Dim num As Integer, sum As Single, r As Range
AVrngCol = AVrng.Column
For Each r In rng
If r.Value = conrng.Value Then
temp = Val(Cells(r.Row, AVrngCol).Value)
num = num + 1
sum = sum + temp
End If
Next
MyAverageIf = CSng(sum / num)
MyAverageIf = Format$(MyAverageIf, "0.00")
End Function
Sub tt()
d = MyAverageIf([B2:B16], [C2:C16], [G2])
MsgBox d
End Sub
结果
如果你感觉学习到东西,请转发给更多人学习到。