計算 Excel 清單中 400 多個不同項目的出現次數

計算 Excel 清單中 400 多個不同項目的出現次數

我有一個大約 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

一種簡單的方法是將值匯出到文字檔案(例如 ) ,然後在同一資料夾中f.txt執行以下腳本:.bat

@echo off
setlocal

rem Accumulate each occurrence in its corresponding array element
for /F %%a in (f.txt) do set /A "[%%a]+=1"

rem Show the result
for /F %%a in ('set [') do echo %%a

在範例資料上運行它會返回:

在此輸入影像描述

答案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)

根據需要調整公式中的儲存格引用。

相關內容