在使用vba的excel 中,我如何以编程方式取一列的平均值,不包括空字段和等于“3”的值。
我有一个标题为“isCompleted”的列,其中值可以是 0(否)或 1(是)或 3(不相关)
要查看已完成的数量,我将仅取 0 和 1 分数的平均值。我如何以编程方式做到这一点?
XL03
With Application.WorksheetFunction
MsgBox .SumIf(Range("A:A"), "<3") / .CountIf(Range("A:A"), "<3")
End With
或者,假设您有 xl07 或更高版本
我想你想要
MsgBox Application.WorksheetFunction.AverageIfs(Range("A:A"), Range("A:A"), "<3")
'or perhaps
MsgBox Application.WorksheetFunction.AverageIfs(Range("A:A"), Range("A:A"), "<=1")
平均 0 和 1 值
不需要 VBA,这个公式就可以了:
=SUMIFS(A:A,A:A,"<>3")/COUNTIFS(A:A,"<>3",A:A,">=0")