在Excel中对具有重复值的行求和

时间:2010-02-15 17:22:45

标签: excel vba excel-vba sum

我需要一个宏来查看下面的数据列表,提供它出现的实例数量的计数,并将每个宏的值相加。我知道一个数据透视表或一系列公式可以工作,但我正在为一个同事这样做,它必须是“一键点击这里”有点交易。数据如下:

A        B
Smith   200.00
Dean    100.00
Smith   100.00
Smith    50.00
Wilson   25.00
Dean     25.00
Barry   100.00

最终结果看起来像这样

Smith    3     350.00
Dean     2     125.00
Wilson   1      25.00
Barry    1     100.00

4 个答案:

答案 0 :(得分:3)

只需在新工作表中创建引用该数据的数据透视表。要更新它,请告诉您的同事右键单击数据透视表并选择刷新。不需要宏或代码。

答案 1 :(得分:2)

录制的宏来创建一个可以满足您需要的数据透视表。

Sub Macro1()

'Who Cost
'Smith   200
'Dean    100
'Smith   100
'Smith   50
'Wilson  25
'Dean    25
'Barry   100

    Range("A1:B8").Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!R1C1:R8C2").CreatePivotTable TableDestination:="[Book1]Sheet1!R1C4", _
        TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Who")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Cost"), "Sum of Cost", xlSum
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Cost"), "Sum of Cost2", xlSum
    Range("E1").Select
    With ActiveSheet.PivotTables("PivotTable1").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
    End With
    Range("E2").Select
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of Cost").Function = _
        xlCount
End Sub

答案 2 :(得分:0)

Excel提供了这些东西

SUMIF()
COUNTIF()
数据,过滤器,高级过滤器,仅限唯一记录

为您提供所需的一切,您可以录制为宏。

答案 3 :(得分:-1)

你被允许弄乱数据吗?您可以按A列对其进行排序,然后使用小计功能,在A列和B列中进行更改,并在B列中显示总计(我认为无论如何都是默认设置)。

如果你可能没有对它进行排序,那么我认为只需将其复制到新的表格并对其副本进行排序将是最简单的方法。

[抱歉,我忘记了“计数”位。您可以以相同的方式添加一个填充了1的新列和小计。]