Wie kann man Werte nach Gruppen in Excel ranken?
Das Arbeiten mit gruppierten Daten in Excel erfordert oft den Vergleich von Werten innerhalb jeder Gruppe, wie zum Beispiel das Rangordnen von Umsatzzahlen nach Region, Testergebnissen nach Klasse oder Transaktionsbeträgen nach Kategorie. Während Excel robuste Werkzeuge zum Rangordnen von Daten bietet, erfordert das Rangordnen innerhalb von Gruppen (auch bekannt als "gruppenweises Ranking" oder "bedingtes Ranking") einen spezifischen Ansatz. Dies ist besonders nützlich, wenn Sie die Leistung bewerten oder die besten und schlechtesten Datensätze unter verschiedenen Kategorien identifizieren möchten, ohne die Ergebnisse zwischen den Gruppen zu vermischen. Die folgenden Methoden untersuchen praktische Lösungen für das Ranking von Werten nach Gruppen, wodurch es einfacher wird, Ihre Daten präzise zu interpretieren und in alltäglichen Aufgaben zu analysieren.
Werte nach Gruppen ranken
VBA-Code - Verwenden Sie ein Makro, um das Ranking von Werten innerhalb jeder Gruppe zu automatisieren
Werte nach Gruppen ranken
Für Situationen, in denen Sie Werte innerhalb unterschiedlicher Gruppen ranken müssen, wie zum Beispiel das Bewerten von Schülern nach Klasse oder das Auflisten von Verkäufen nach verschiedenen Regionen, hat Excel keine direkte "Ranking nach Gruppe"-Funktion. Ein gut gestaltetes Formelkonzept kann jedoch effizient eine gruppenweise Rangfolge erreichen, ohne zusätzliche Datenmanipulation.
Dazu können Sie eine Array-Formel verwenden, die logische Tests mit Aggregationsfunktionen kombiniert. Mit diesem Ansatz können Sie jeden Wert nur innerhalb seiner zugewiesenen Gruppe vergleichen und so den erforderlichen Rang für jeden Datenpunkt erzeugen.
Führen Sie die folgenden Schritte aus:
- Organisieren Sie Ihre gruppierten Daten in Spalten, wie Gruppe (A2:A11) und Wert (B2:B11).
- Wählen Sie eine leere Zelle neben Ihren Daten aus – normalerweise in der ersten Zeile neben Ihren Werten, zum Beispiel Zelle C2.
- Geben Sie die folgende Formel ein:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1
Diese Formel funktioniert, indem sie zählt, wie viele Werte innerhalb derselben Gruppe kleiner als der aktuelle Wert sind. Hier ist die Bedeutung jedes Parameters:
- ($A$2:$A$11=A2)
→ Dies überprüft, ob jede Zelle im Bereich A2:A11 gleich dem Wert in A2 ist.
→ Es gibt ein Array von WAHR/FALSCH (oder 1/0) Werten zurück, die darstellen, ob jede Zeile zur selben Gruppe wie A2 gehört. - (B2<$B$2:$B$11)
→ Dies überprüft, wie viele Werte in B2:B11 größer als B2 sind.
→ Es gibt WAHR (1) zurück, wenn B2 kleiner als ein gegebener Wert ist, andernfalls FALSCH (0). - * (Multiplikation)
→ Dies kombiniert die zwei Bedingungen: - Gruppenübereinstimmung (A2)
Der Wert in B2 ist kleiner als andere
→ Nur Zeilen, die sich in derselben Gruppe befinden und einen kleineren Wert haben, werden gezählt. - SUMMENPRODUKT(...)
→ Summiert die Anzahl der Zeilen, die beide Bedingungen erfüllen. - +1
→ Ränge beginnen bei 1 (anstatt 0), daher addieren wir 1 zur Anzahl der kleineren Werte.
Sobald die Formel in C2 eingegeben wurde, ziehen Sie den Autofill-Handle nach unten, um diese Formel für alle relevanten Zeilen in Ihrem Datensatz auszufüllen. Die Formel passt sich automatisch an, um die Gruppe und den Wert jeder Zeile zu verwenden und gibt den Rang innerhalb dieser Gruppe zurück.
Tipps und Vorsichtsmaßnahmen:
- Wenn Ihr Bereich groß ist, denken Sie daran, die Zellreferenzen entsprechend zu aktualisieren.
- Für Ränge in absteigender Reihenfolge (z.B. der höchste Wert ist 1), ändern Sie den Formelvergleich von
B2<$B$2:$B$11
inB2>$B$2:$B$11
. - Um doppelte Werte zu behandeln, weist diese Formel denselben Rang gleichen Werten innerhalb derselben Gruppe zu. Wenn Sie sequenzielle eindeutige Ränge benötigen, sollten Sie zusätzliche Hilfsspalten in Betracht ziehen.
Diese formelbasierte Methode ist flexibel und lässt sich leicht auf die meisten gruppierten Tabellenstrukturen in Excel anwenden. Bei sehr großen Datensätzen kann die Berechnungsleistung jedoch aufgrund der Abhängigkeit von Array-Logik langsamer werden.
VBA-Code - Verwenden Sie ein Makro, um das Ranking von Werten innerhalb jeder Gruppe zu automatisieren
Für Benutzer, die den Ranking-Prozess automatisieren oder größere Datensätze effizienter verarbeiten möchten, kann das Schreiben eines VBA-Makros eine wertvolle Herangehensweise sein. Makros können repetitive Schritte automatisieren, bieten mehr Anpassungsmöglichkeiten und verarbeiten Daten schneller als komplexe Formeln. Dies ist ideal für Szenarien wie die Erstellung geplanter Berichte, wiederholte Ranking-Aufgaben oder wenn Sie Formel-Unordnung in Ihrer Arbeitsmappe vermeiden möchten.
Bevor Sie fortfahren, stellen Sie sicher, dass Sie Ihre Arbeit speichern und Makros in Ihren Excel-Einstellungen aktivieren. So können Sie dieses Skript schreiben und ausführen:
- Drücken Sie Alt + F11, um den VBA-Editor zu aktivieren. Klicken Sie im erscheinenden Microsoft Visual Basic for Applications-Fenster auf Einfügen > Modul und fügen Sie den folgenden Code in das geöffnete Modul ein:
Sub RankValuesByGroup()
Dim DataRange As Range
Dim GroupRng As Range
Dim ValueRng As Range
Dim OutCol As Range
Dim dictGroups As Object
Dim arrValues, arrRanks
Dim i As Long, j As Long
Dim GroupKey As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
If DataRange Is Nothing Then Exit Sub
Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
OutCol.Cells(1).Value = "RankByGroup"
Set dictGroups = CreateObject("Scripting.Dictionary")
arrValues = ValueRng.Value
arrRanks = ValueRng.Value
' Build group dictionaries for ranking
For i = 2 To UBound(arrValues, 1)
GroupKey = GroupRng.Cells(i, 1).Value
If Not dictGroups.Exists(GroupKey) Then
dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
End If
dictGroups(GroupKey).Add arrValues(i, 1)
Next i
' Rank within each group
For i = 2 To UBound(arrValues, 1)
GroupKey = GroupRng.Cells(i, 1).Value
Dim countLower As Long
countLower = 0
For j = 0 To dictGroups(GroupKey).Count - 1
If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
countLower = countLower + 1
End If
Next j
arrRanks(i, 1) = countLower + 1
Next i
' Output results
For i = 2 To UBound(arrRanks, 1)
OutCol.Cells(i, 1).Value = arrRanks(i, 1)
Next i
MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
- Klicken Sie auf Ausführen. Ein Dialogfeld fordert Sie auf, Ihren vollständigen Datenbereich, die Gruppenspalte und die Wertsäule auszuwählen. Das Makro generiert dann eine neue Spalte mit den Rängen für jeden Wert innerhalb seiner Gruppe.
Hinweise und Problembehandlung:
- Stellen Sie sicher, dass die Spalenauswahl mit Ihren Daten übereinstimmt: Die Gruppen- und Wertsäulen müssen korrekt ausgerichtet sein.
- Wenn die Datenüberschrift enthalten ist, passen Sie den Anfangs-Schleifenindex im Code für die korrekte Rangfolge an (je nach Ihrer Datenstruktur).
- Um in absteigender Reihenfolge zu ranken, ändern Sie den Vergleich
If dictGroups(GroupKey)(j) < arrValues(i,1)
entsprechend. - Wenn Sie auf Berechtigungs- oder Makro-Sicherheitswarnungen stoßen, überprüfen Sie die Makro-Sicherheitseinstellungen von Excel unter Datei > Optionen > Vertrauenszentrum.
Diese VBA-Methode bietet Flexibilität und robuste Leistung für fortgeschrittenere oder hochskalierte Anwendungen, insbesondere wenn sie in automatisierte Berichtsworkflows integriert wird.

Entfesseln Sie die Magie von Excel mit Kutools AI
- Intelligente Ausführung: Führen Sie Zellenoperationen durch, analysieren Sie Daten und erstellen Sie Diagramme – alles angetrieben durch einfache Befehle.
- Benutzerdefinierte Formeln: Erstellen Sie maßgeschneiderte Formeln, um Ihre Arbeitsabläufe zu optimieren.
- VBA-Codierung: Schreiben und implementieren Sie VBA-Code mühelos.
- Formelinterpretation: Verstehen Sie komplexe Formeln mit Leichtigkeit.
- Textübersetzung: Überwinden Sie Sprachbarrieren in Ihren Tabellen.
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!