我之前从未使用AVERGEIFS
,而且对我来说有点过于复杂,所以请帮助我。
我有一个范围,我希望在列A中对列值B等于2且列A值小于3的行的列值进行平均,所以这是正确的:
WorksheetFunction.averageifs(columnA, columnA, "<3", columnB, "2")
修改 我得到了“类型不匹配”
ColumnA和ColumnB是范围,如果句子是我想要的
IF columnA < 3 AND columnB = 2 Then Average(columnA)
<击> 修改 撞击>
<击>我假设这必须与我的类型有关,当我输入我的参数时,averageifs抛出1004 cannot get the averageifs property of class worksheetfunction
,但是在给定相同参数的情况下,countifs抛出13 Type Mismatch
:
For Each column In importsheet.UsedRange.Columns
colcount = .CountIfs(column, column, "<3", importsheet.UsedRange.Columns(DepColumn), sec)
Next
DepColumn和colcount是整数,
sec是一个带整数(“2”)的字符串
如果出现上述错误,请将其划掉
答案 0 :(得分:2)
假设columnA
和columnB
是相同大小的范围,那么您的公式是正确的:
WorksheetFunction.Averageifs(Range("A:A"),Range("A:A"),"<3",Range("B:B"),"2")
将返回A列的平均值,其中A <3且B = 2。
答案 1 :(得分:2)
发布的代码的语法正确提供
Dim
'ed columnA
和columnB
为Range
并且Set
为有效范围带错误处理的演示:
Sub Demo()
Dim columnA As Range
Dim columnB As Range
Dim v
Set columnA = [A:A]
Set columnB = [B:B]
On Error Resume Next
v = WorksheetFunction.AverageIfs(columnA, columnA, "<3", columnB, "2")
If Err.Number = 1004 Then
'No matching data
v = CVErr(xlErrNA)
End If
On Error GoTo 0
End Sub