以编程方式取excel中的列的平均值,但不取值=“3”

时间:2013-02-12 11:31:19

标签: excel-vba vba excel

在excel中使用我如何以编程方式获取列的平均值,不包括空字段和等于“3”的值。

我有一个标题为“isCompleted”的列,其值可以是0(否)或1(是)或3(不相关)

看看有多少已经完成我只取0和1分的平均值。我该如何以编程方式执行此操作?

2 个答案:

答案 0 :(得分:2)

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值

答案 1 :(得分:0)

不需要VBA,这个公式将完成这项工作:

=SUMIFS(A:A,A:A,"<>3")/COUNTIFS(A:A,"<>3",A:A,">=0")