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