簡體   English   中英

VBA從列表中提取唯一值並在單獨的頁面上計算它們

[英]VBA to extract unique values from list and count them on separate page

好吧,這一直是最簡單的問題,但我一直在尋找一段時間而無法解決這個問題。 我在工作表“Page1_1”(shtData)上有一個非常長的值列表,我需要使用它來生成“Numbers”上的唯一值列表以及每個唯一值的計數。 通過復制到“Numbers”(shtNumbers)並刪除重復項來手動完成非常簡單,但我使用的countif公式非常耗費內存,並且將其全部搞砸了。 我有代碼提供唯一的列表,但試圖得到每個項目的計數是困擾我

簡單地說:我需要代碼從“Page1_1”(shtData)A2生成一個唯一值列表:數據結束,並將該列表從“Numbers”(shtNumbers)A2開始放下,然后計算出現次數並列出計數B2下來。

當前代碼:

shtData.Range("A2:A65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=shtNumbers.Range("A2"), Unique:=True

該代碼完美地為我生成了列表。 我發布了我的計數部分,但它根本不起作用,所以我懷疑它會有所幫助。

謝謝!

嘗試這個:

With shtNumbers

    With .Range(.Range("B2"),.Range("A2").End(xlDown).Offset(,1))

        .FormulaR1C1 = "=COUNTIF(Data!C[-1],RC[-1])" 'change data to actual sheet name

    End With

End With

嘗試一下:

Sub SuperSimpleFrequencyTable()
    Dim C As Range, A As Range, B As Range

    Set A = Sheets("Page1_1").Range("A:A")
    Set B = Sheets("Numbers").Range("A:A")

    A.Copy B
    B.RemoveDuplicates Columns:=1, Header:=xlNo
    Set C = B.SpecialCells(xlCellTypeConstants).Offset(0, 1)

    With C
        .Formula = "=countif(Page1_1!A:A,A1)"
        .Value = .Value
    End With

End Sub

它不會在Numbers表中留下公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM