我想计算E列中单元格的平均值,仅用于列I中有0的行。它需要if条件然后执行标准平均代码行。我提供的代码我有写入以计算列E中所有单元格的平均值。此代码需要编辑以包含此条件(如果条件)。如果有人知道要添加什么,如果条件我会很感激!
另外,我提供了截图
lastrow = Cells(Rows.Count, "D").End(xlUp).Row
Range("C1").Formula = "=AVERAGE(E2:E" & lastrow & ")"
答案 0 :(得分:4)
式:
=AVERAGEIF(I:I,0,E:E)
或在vba中:
WorksheetFunction.AverageIf(Range("I:I"), 0, Range("E:E"))
答案 1 :(得分:2)
据我所知,除非你把它作为一个数组函数,否则你不能用excel函数做到这一点。数组函数功能强大,但在计算时可能非常慢。这是使用VBA集合的VBA解决方案。
您选择的答案肯定是获得答案的更有效方式。但是,如果您希望以其他方式操纵这些数字,那么此代码可能很有用,因为它将它们放入集合中。
我制作了一个VBA集合并在其中添加了对应于D中0值的E中的所有值。然后我将其总结为一个名为f
的变量,然后将其除以集合的计数。然后将它放在你想要的范围内。
Sub test()
Dim a As Collection
Dim lastrow As Integer
Set a = New Collection
lastrow = Cells(Rows.Count, "D").End(xlUp).Row
For x = 1 To lastrow
If Cells(x, 9) = 0 Then
y = Cells(x, 5).Value
a.Add (y)
End If
Next x
For Z = 1 To a.Count
f = a.Item(Z) + f
Next Z
Range("C1").Value = (f / a.Count)
End Sub