vbaを使用したExcelでは、空のフィールドと「3」に等しい値を除いて、プログラムで列の平均を取得する方法を教えてください。
値が 0 (いいえ) または 1 (はい) または 3 (関連なし) のヘッダー "isCompleted" を持つ列があります。
完了した数を確認するには、0 と 1 のスコアのみの平均を取ります。プログラムでそれを行うにはどうすればよいですか?
xl03
With Application.WorksheetFunction
MsgBox .SumIf(Range("A:A"), "<3") / .CountIf(Range("A:A"), "<3")
End With
or, assuming you have xl07 or higher
I think you want
MsgBox Application.WorksheetFunction.AverageIfs(Range("A:A"), Range("A:A"), "<3")
'or perhaps
MsgBox Application.WorksheetFunction.AverageIfs(Range("A:A"), Range("A:A"), "<=1")
to average the 0 and 1 values
VBA は必要ありません。次の式でうまくいきます。
=SUMIFS(A:A,A:A,"<>3")/COUNTIFS(A:A,"<>3",A:A,">=0")