如何使用vba进行sumif函数(数据合并)?

时间:2015-10-04 10:04:56

标签: excel-vba excel-formula sumifs consolidation vba

嗨我有这样的数据集:

    A  B
    a  2
    b  1
    c  3
    a  1
    b  2

我想要在D和E列的合并数据中删除重复项。示例如下。

   Eg. 
    D  E
    a  3
    b  3
    c  3

我已经想出要删除重复的部分。但我仍然坚持整合。我估计使用Sumif可以解决问题。但我不确定这是最好的解决方案。 有人可以帮我这个吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

在我看来,使用已实现的功能肯定是最佳解决方案。

所以:

Sub Consolidate()

 With ActiveSheet

  .Columns("A:B").Copy Destination:=.Columns("D:E")
  .Columns("D:E").RemoveDuplicates Columns:=1, Header:=xlNo
  lLastRow = .Columns("D").Cells(.Rows.Count, 1).End(xlUp).Row
  .Range("E1:E" & lLastRow).FormulaR1C1 = "=SUMIF(C[-4],RC[-1],C[-3])"

 End With

End Sub

或者只是使用Consolidate

Sub Consolidate2()

 With ActiveSheet

  .Range("D1").Consolidate Sources:="C1:C2", Function:=xlSum, _
        TopRow:=False, LeftColumn:=True, CreateLinks:=False

 End With

End Sub

注意,Sources:="C1:C2"以R1C1表示法给出。所以它意味着Column1到Column2。