我有一个客户订单清单,其中有一个date
,customer ID
和amount purchased
。在相邻列中添加具有相同值的所有值?
这里是什么样子:
我想所有的这些巩固与总量每一位客户购买了一个新的工作表。我将如何实现这一目标?
我已经考虑检查每一行并检查它的现有客户或新客户,并将其添加到数组中。这似乎并不像这样有效。
我有一个客户订单清单,其中有一个date
,customer ID
和amount purchased
。在相邻列中添加具有相同值的所有值?
这里是什么样子:
我想所有的这些巩固与总量每一位客户购买了一个新的工作表。我将如何实现这一目标?
我已经考虑检查每一行并检查它的现有客户或新客户,并将其添加到数组中。这似乎并不像这样有效。
根据@ ScottCraner的建议,数据透视表将按照以下代码提供所需格式的数据。如果您没有'Sheet2',请将其添加并运行代码。源数据位于第3行开始的“Sheet1”上,如图所示。如果你想实验我已经包含一个宏来删除数据透视表。
Option Explicit
Sub CreatePivotTable()
Dim sht1 As Worksheet: Set sht1 = Worksheets("Sheet1")
Dim sht2 As Worksheet: Set sht2 = Worksheets("Sheet2")
Dim lastRow As Long
Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim strt As String, src As String
With sht1
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
src = .Name & "!" & Range("A3:C" & lastRow).Address
End With
strt = sht2.Name & "!" & sht2.Range("A1").Address
'Create Pivot Cache from Source Data
Set pvtCache = ActiveWorkbook.PivotCaches.Create(_
SourceType:=xlDatabase, SourceData:=src)
'Create Pivot table from Pivot Cache
Set pvt = pvtCache.CreatePivotTable(TableDestination:=sht2.Range(strt), _
TableName:="PivotTable1")
'Add fields
With pvt
With .PivotFields("Customer ID")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Amount Purchased")
.Orientation = xlDataField
.Position = 1
End With
.ColumnGrand = False
.RowGrand = False
End With
End Sub
Sub DeletePivotTable()
ThisWorkbook.Sheets("Sheet2").PivotTables(1).TableRange2.Clear
End Sub
数据透视表是要走的路。 –