2017-06-01 149 views
0

我有一个客户订单清单,其中有一个date,customer IDamount purchased在相邻列中添加具有相同值的所有值?

这里是什么样子:

Customer Order Worksheet

我想所有的这些巩固与总量每一位客户购买了一个新的工作表。我将如何实现这一目标?

我已经考虑检查每一行并检查它的现有客户或新客户,并将其添加到数组中。这似乎并不像这样有效。

+2

数据透视表是要走的路。 –

回答

0

你可以用简单的Excel函数做到这一点。

enter image description here

=SUMIFS(C$2:C3,$B$2:B3,B3)拷贝这个公式来的第一个记录的相邻行,并将其向下拖动。不要使用数组的锁定起始单元格和数组的动态结束单元格。




enter image description here

=SUM((C3:C32)*(B3:B32=G5)*(A3:A32>=G3)*(A3:A32<=G4))拷贝该公式并将其输入作为数组公式。按住Shift + Ctrl键,然后按enter键。

您现在可以相应地更改日期和客户标识。

0

根据@ 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 
相关问题