Zählen Sie Vorkommen in einer Excel-Liste mit mehr als 400 verschiedenen Elementen

Zählen Sie Vorkommen in einer Excel-Liste mit mehr als 400 verschiedenen Elementen

Ich habe eine Liste mit etwa 5.000 Zeilen und möchte die Vorkommen jedes Elements zählen.

Diese Liste enthält etwa 300 bis 400 verschiedene Elemente.

Anstatt über 300 einzigartige Formeln einzutippen, die aussehen wie

=COUNTIF(A1:A5000,"A")
=COUNTIF(A1:A5000,"B")
=COUNTIF(A1:A5000,"C")
=COUNTIF(A1:A5000,"D")
=COUNTIF(A1:A5000,"E")
ETC to 300...

, gibt es eine Möglichkeit, dieses Ziel mit einer Art verbesserter Formel zu erreichen?

Unten sehen Sie ein Listenbeispiel, das ich aus einer zuvor geposteten Frage übernommen habe, da es veranschaulicht, was ich erreichen möchte. In meinem Fall habe ich jedoch 300 bis 400 verschiedene Elemente, nicht nur A, B, C, D und E:

„Ich habe eine Liste mit Elementen, die so aussieht:“

A
B
C
A
A
B
D
E
A

„Jetzt möchte ich die Anzahl der Vorkommen jedes Elements zählen. Das Ergebnis sollte folgendermaßen aussehen:“

A 4
B 2
C 1
D 1
E 1

Dank geht an RoflcoptrException für das Posten der ursprünglichen Frage.

Antwort1

Eine einfache Möglichkeit hierzu besteht darin, die Werte beispielsweise in eine Textdatei zu exportieren f.txtund das folgende .batSkript im selben Ordner auszuführen:

@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

Wenn Sie es auf Ihren Beispieldaten ausführen, wird Folgendes zurückgegeben:

Bildbeschreibung hier eingeben

Antwort2

Anstelle einer Formel möchte ich die schnellste Methode vorschlagen, nämlich VBA Macrodas Zählen des Vorkommens verschiedener Elemente.

Bildbeschreibung hier eingeben

Wie es funktioniert:

  • Um eine eindeutige Liste der zu zählenden Elemente zu erstellen, verwenden Sie die Array-Formel (CSE) in der Zelle C68:

    {=IFERROR(INDEX($A$68:$A$78, MATCH(0,COUNTIF($C$67:C67, $A$68:$A$78), 0)),"")}
    
  • Beenden Sie die Formel mitStrg+Umschalt+Eingabe& Abfüllen.

  • Drücken Sie entwederAlt+F11oderRKlicken Sie mit der rechten Maustaste auf das Blatt TAB und drücken SieVCode anzeigen.

  • Im VB-Editorfenster vonICHnsert Befehl klickenMModul.

  • Copy &Paste diesen Code.

    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
    
  • Arbeitsmappe mit aktiviertem Makro (.xlsm) speichern.

  • Geben Sie diese Formel in die Zelle ein D68und füllen Sie sie aus:

=CountString($C68,A$68:A$78)

  • Um das Vorkommen in mehreren Spalten zu zählen, können Sie eine Formel wie diese verwenden.

=CountString($C68,A:C)

Passen Sie die Zellbezüge in der Formel nach Bedarf an.

verwandte Informationen