我有一個大約 5K 行的列表,我想計算每個項目的出現次數。
此列表中大約有 300 - 400 種不同的項目。
而不是輸入 300 多個獨特的公式,如下所示
=COUNTIF(A1:A5000,"A")
=COUNTIF(A1:A5000,"B")
=COUNTIF(A1:A5000,"C")
=COUNTIF(A1:A5000,"D")
=COUNTIF(A1:A5000,"E")
ETC to 300...
,有沒有辦法透過某種增強的公式來實現這個目標?
以下是我從之前發布的問題中藉用的清單範例,因為它演示了我想要完成的任務,但就我而言,我有300 到400 個不同的項目,而不僅僅是A、B、C 、D 和E :
“我有一個項目清單,如下所示:”
A
B
C
A
A
B
D
E
A
“現在我想計算每個項目出現的次數。結果應該如下所示:”
A 4
B 2
C 1
D 1
E 1
感謝 RoflcoptrException 發布原始問題。
答案1
答案2
我想建議最快的方法,而不是公式,也就是VBA Macro
計算各種項目的出現次數。
怎麼運作的:
要建立要計數的項目的唯一列表,單元格中的數組 (CSE) 公式
C68
:{=IFERROR(INDEX($A$68:$A$78, MATCH(0,COUNTIF($C$67:C67, $A$68:$A$78), 0)),"")}
完成公式Ctrl+Shift+Enter並填寫。
要么按Alt+F11或者右右鍵單擊工作表 TAB 並點擊V查看代碼。
在 VB 編輯器視窗中我插入命令單擊中號奧杜勒。
C奧比&磷嘗試這段程式碼。
Public Function CountString(SearchFor As String, InRange As Range) As Long Dim wbcs As Long, rng As Range, addr As String For Each s In Worksheets addr = InRange.Address Set rng = s.Range(addr) wbcs = wbcs + Application.WorksheetFunction.CountIf(rng, "*" & SearchFor & "*") Next s CountString = wbcs End Function
將工作簿另存為啟用巨集 (.xlsm)。
在儲存格中輸入此公式
D68
,向下填寫:
=CountString($C68,A$68:A$78)
- 要計算多列中的出現次數,您可以使用這樣的公式。
=CountString($C68,A:C)
根據需要調整公式中的儲存格引用。