需要Excel中sumif公式的动态数据范围

时间:2011-04-05 08:24:50

标签: excel

我有一个与excel sumif公式有关的问题。我有两列EmpID和TimeSpent(以小时为单位)。 我想通过宏计算 sumif 公式的总和。我已应用以下公式:

= SUMIF($ A $ 2:$ A $ 30000,A2,OFFSET(数据$ B $ 2,0,0,COUNTA(数据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函数。我搜索过它,但没有人可以帮助我。

1 个答案:

答案 0 :(得分: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