2011-04-05 47 views
0

SUMIF公式的动态数据范围我要练成SUMIF公式相关的问题。我有两列EmpID和TimeSpent(以小时计)。 我想 SUMIF通过宏观的公式来计算的总和。我已应用以下公式:
需要在Excel

= SUMIF($ A $ 2:$ A $ 30000,A2,OFFSET(Data!$ B $ 2,0,0,COUNTA(Data!A:$ A),2))

 
EmpID   TimeSpent  Sum 
393    6.34  46.75 
393    0.07  46.75 
393    40.34  46.75 
888    0.02  0.02 
405    15.39  48.16 
405    32.50  48.16 
405    0.27  48.16 
328    5.22  63.6 
328    2.08  63.6 
328    25.04  63.6 
328    0.11  63.6 
328    0.08  63.6 
328    22.34  63.6 
328    0.07  63.6 
328    0.06  63.6 
328    7.50  63.6 
328    0.20  63.6 
328    0.41  63.6 
328    0.49  63.6 
61    18.02  36.36 
61    18.34  36.36 

它正确地显示选定行的总和。每个文件都有不同的行。我的问题是如何设置动态数据源来应用sumif函数。我已经搜查过它,但没有人能帮助我。

回答

0

将这项工作?我在同一列假设相关的数据总是与第一个记录始终处于行2

Sub asdf() 

    Dim rc As Integer 
    Dim strFormula As String 

    rc = Range("A1", Range("A1").End(xlDown)).Count 

    strFormula = "=SUMIF($A$2:$A$" & rc & ",A2,OFFSET($B$2,0,0,COUNTA($A$2:$A$" & rc & "),2))" 

    Range("C2") = strFormula 
    Range("C2").AutoFill Destination:=Range("C2:C" & rc) 

End Sub