首页 > 解决方案 > VBA:在a列中查找重复项,添加b和c的总和

问题描述

这一切都很新,只是试一试。只是在 excel 中构建了一个宠物项目,并且进展顺利(我实际上已经爱上了它,并且非常享受自己!)......直到我撞到这堵墙,我完全被难住了。

无论如何,我已经碰壁了,并且一直在寻找答案。

我正在尝试配置一个 vba 以在 a 列中查找重复项(比如项目)。当它找到重复项时,我希望它取 b 列并添加总和并取 c 列并添加总和。所有重复项都被删除,它被替换/新表很好,整洁。我尝试了 100 种不同的东西,搜索和搜索,但一无所获。

这就是我想要实现的目标:

我正在看类似的东西,但它只适用于对 b 列求和。

Dim Cl As Range
Dim Cnt As Long

With CreateObject("scripting.dictionary")
    For Each Cl In Range("a1", Range("a" & Rows.Count).End(xlUp))
        If Not .exists(Cl.Value) Then
            .Add Cl.Value, Cl.Offset(, 1).Value
        Else
            .Item(Cl.Value) = .Item(Cl.Value) + Cl.Offset(, 1).Value
            
        End If
    Next Cl
    Sheets("test").Range("A1").Resize(.Count).Value = Application.Transpose(.Keys)
    Sheets("test").Range("B1").Resize(.Count).Value = Application.Transpose(.items)
    End With

但它只适用于第一列。我无法弄清楚如何使用第二个范围。任何帮助将不胜感激。

标签: excelvba

解决方案


您可以在 O365 中不使用 VBA 来执行此操作。

E1 =UNIQUE(A1:A16)
F1 =SUMIFS(B$1:B$16,$A$1:$A$16,$E1#)
G1 =SUMIFS(B$1:B$16,$A$1:$A$16,$E1#)

推荐阅读