具有条件的多张纸的平均值

时间:2014-03-22 16:48:15

标签: excel excel-vba vba

我的Excel工作簿有几张。每张工作表都有cell B1个产品名称。

此外,每张工作表都有cells B4 to B100个数字。

我想得到所有床单的平均值。以下是我到目前为止的情况:

=AVERAGE(Sheet1:Sheet20!B4:B100)

现在这个工作正常,但是,我现在也希望有一个额外的条件:我只想获得满足某个产品名称的那些纸张的平均值(单元格B1),而不是获得所有纸张的平均值。 。如果产品名称与指定的名称不同,则不应将整个表格考虑在内。

有没有简单的方法呢?

1 个答案:

答案 0 :(得分:0)

如果 B1 包含 Apfel ,则执行平均值:

Sub AboveAverage()
    Dim zum As Double, kount As Long
    Dim i As Long, r As Range, tAv As Double
    zum = 0
    kount = 0
    For i = 1 To 20
        With Sheets("Sheet" & i)
        If .Range("B1") = "Apfel" Then
            For j = 4 To 10000
                v = .Cells(j, "B").Value
                If v <> "" Then
                    zum = zum + v
                    kount = kount + 1
                End If
            Next j
        End If
        End With
    Next i
    tAv = zum / kount
    MsgBox tAv
End Sub