将excel中的所有行与特定列中的相同值相加

时间:2014-07-18 15:11:38

标签: excel

所以基本上我会有一个更改的名单列表,如此

Deborah     9   30

Steven      4   22

Michelle    9   26

Michelle    8   30

Alice      10   28

John        3   21

David       7   23

David       9   26

David       7   24

Lucy        6   24

我的目标是编写一个宏,以便名称显示为

Deborah     9   30

Steven      4   22

Michelle    17  56

Alice       10  28

John        3   21

David       23  73

Lucy        6   24

因此,第1列具有相同值的所有行将是另一列中值的总和,并合并为一行。这些名字将会发生变化,因此我无法在IF中进行硬编码=" Michelle"它必须只是这些行=这些其他行。我正在尝试在工作中自动完成繁琐的任务,感谢任何建议!

3 个答案:

答案 0 :(得分:0)

您可以使用包含INDEXMATCHMAXCOUNTIF的数组公式创建不同的名称排序列表,如下所述:

http://www.get-digital-help.com/2009/04/14/create-a-unique-alphabetically-sorted-list-extracted-from-a-column/

然后,您可以对结果中的每个名称使用简单的SUMIF函数。

答案 1 :(得分:0)

如果重复的名称是连续的行,那么尝试这个短宏:

Sub DeDup()
    Dim N As Long, i As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = N To 2 Step -1
        If Cells(i, 1) = Cells(i - 1, 1) Then
            Cells(i - 1, 2) = Cells(i - 1, 2) + Cells(i, 2)
            Cells(i - 1, 3) = Cells(i - 1, 3) + Cells(i, 3)
            Range(Cells(i, 1), Cells(i, 3)).Delete Shift:=xlUp
        End If
    Next i
End Sub

答案 2 :(得分:0)

只需使用sumif公式。你可以根据自己的需要进行操作。它将在给定的行中总结您想要的内容。或者如果您愿意,可以使用数组。