2014-10-09 43 views
0

我有這樣一個電子表格:如何使用Excel 2007中的VBA對兩列進行排序和計數?

 
Item Category | Customer Category 
--------------|------------------- 
    A  |   Z 
    A  |   Z 
    A  |   Y 
    B  |   Y 
    B  |   Z 
    B  |   Z 
etc.. on to > 35K rows.

我試圖寫一個VBA模塊數和合並其在兩列相同的行,但要來了短。

我想輸出,如:

 
Item Category | Customer Category | Count 
--------------|--------------------|------ 
    A  |   Z   | 2 
    A  |   Y   | 1 
    B  |   Y   | 1 
    B  |   Z   | 2 
等等......

這聽起來很簡單,我發現就在這裏分揀和計數更爲複雜的電子表格的例子不勝枚舉,但不能得到我的上班。

+1

您可以使用數據透視表執行此操作。 – 2014-10-09 05:00:42

回答

0

試試這個easy使用方式Advance Filter

Sub Test() 
    Dim rng As Range, lrow As Long 
    With Sheet1 
     .Columns("E:G").ClearContents: .Range("G1") = "Count" 
     Set rng = .Range("A1", .Range("B" & .Rows.Count).End(xlUp)) 
     rng.AdvancedFilter Action:=xlFilterCopy, _ 
      CopyToRange:=.Range("E1"), Unique:=True 
     lrow = .Range("E" & .Rows.Count).End(xlUp).Row 
     With .Range("G2", "G" & lrow) 
      .Formula = "=COUNTIFS(A:A,E2,B:B,F2)" 
      .Value = .Value 
     End With 
    End With 
End Sub 

我認爲這與35k好。因此,每次運行代碼時,都會將列A和B中的項目彙總到E至G列。只是爲了讓您開始。當然最簡單的將是Tim提到的樞軸表。 HTH

+0

謝謝!它的作品非常漂亮。 :) – dt647146 2014-10-09 13:46:46

相關問題