2010-02-15 44 views
1

我需要一個宏來查看下面的數據列表,提供它出現的實例數目並計算它們中的每一個的值。我知道一個數據透視表或一系列公式可以工作,但我正在爲一個同事做這件事,它必須是一個'點擊這裏'有點兒交易。該數據如下:Excel中具有重複值的總和線

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

讓你的同事學習如何使用Excel。 – AMissico 2010-03-11 08:27:28

+0

我會把它移動到一個數據庫,並使用類似下面的查詢:'select name,count(*),sum(price)from yourtable,group by name' – 2012-07-13 19:40:40

回答

-1

你不準惹的數據?您可以按列A對它進行排序,然後使用小計功能,在列A和列B中進行更改,並在列B中顯示總計(我認爲這是默認設置)。

如果你不能對其進行排序,那麼我會認爲只是將它複製到一張新紙上,並對其進行排序是最簡單的方法。

[抱歉,我忘了「count」位。您可以添加用1填充新的列和小計,在同樣的方式]

0

Excel提供這些東西

SUMIF()
COUNTIF()
數據,篩選,高級篩選,重複的記錄

給你你所需要的一切,你可以記錄爲一個宏。

+0

JD, 您會詳細說明如何設置向上? 謝謝, 約翰 – john 2010-02-15 20:10:52

+1

把你的測試數據到列A和B行1至8 在C2輸入= COUNTIF($ A $ 2:$ A $ 8,A2),並將其複製下來的細胞下面 在D2輸入= SUMIF($ A $ 2:$ A $ 8,A2,$ B $ 2:$ B $ 8)並將其複製下來 當然,每當史密斯出現你在C列中獲得3和在D列中獲得350時, 3次因爲史密斯出現3次。您可以使用高級過濾器來隱藏重複項。 – 2010-02-16 09:44:36

+0

數據透視表設置起來更容易,用戶更容易更改,而且更簡單。此外,你的建議將更好地使用數組公式。 – AMissico 2010-03-11 08:40:56

3

只需在引用該數據的新工作表中創建數據透視表。要更新它,請告訴您的同事右鍵單擊數據透視表並選擇刷新。無需爲此的宏或代碼。

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