Wie kann man Werte nach Gruppen in Excel sortieren?
Das Arbeiten mit gruppierten Daten in Excel erfordert oft den Vergleich von Werten innerhalb jeder Gruppe, wie zum Beispiel das Ranking von Umsatzzahlen nach Region, Testergebnissen nach Klasse oder Transaktionsbeträgen nach Kategorie. Während Excel robuste Tools für die Rangfolge von Daten bietet, erfordert das Ranking 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 Spitzen- und Schlussrekorde in verschiedenen Kategorien identifizieren möchten, ohne die Ergebnisse zwischen den Gruppen zu vermischen. Die folgenden Methoden untersuchen praktische Lösungen, um Werte nach Gruppen zu ordnen, was es einfacher macht, Ihre Daten genau in täglichen Aufgaben zu interpretieren und zu analysieren.
Werte nach Gruppen ordnen
VBA-Code – Verwenden Sie ein Makro, um das Ranking von Werten innerhalb jeder Gruppe zu automatisieren
Werte nach Gruppen ordnen
Für Situationen, in denen Sie Werte innerhalb unterschiedlicher Gruppen sortieren müssen, wie zum Beispiel das Bewerten von Schülern nach Klasse oder das Auflisten von Umsätzen nach verschiedenen Regionen, hat Excel kein direktes "Ranking nach Gruppe"-Feature. Allerdings kann eine gut konzipierte Formel ein gruppenweises Ranking effizient und ohne zusätzliche Datenmanipulation erreichen.
Dazu können Sie eine Array-Formel verwenden, die logische Tests mit Aggregationsfunktionen kombiniert. Dieser Ansatz ermöglicht es Ihnen, jeden Wert nur innerhalb seiner festgelegten Gruppe zu vergleichen und so den erforderlichen Rang für jeden Datenpunkt zu erzeugen.
Folgen Sie diesen Schritten:
- Organisieren Sie Ihre gruppierten Daten in Spalten, wie z.B. 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, das darstellt, 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 bestimmter Wert ist, andernfalls FALSCH (0). - * (Multiplikation)
→ Dies kombiniert die beiden Bedingungen: - Gruppenübereinstimmung (A2)
Der Wert in B2 ist kleiner als andere
→ Also werden nur Zeilen gezählt, die sich in derselben Gruppe befinden und einen kleineren Wert haben. - 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 Automatische-Ausfüllmarkierung 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 Zellbezüge entsprechend zu aktualisieren.
- Für Ränge in absteigender Reihenfolge (z.B. höchster 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 jedoch die Berechnungsleistung 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 ein wertvoller Ansatz 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 geplante Berichtserstellung, wiederholte Ranking-Aufgaben oder wenn Sie Formel-Unordnung in Ihrem Arbeitsblatt vermeiden möchten.
Bevor Sie fortfahren, speichern Sie Ihre Arbeit und aktivieren Sie Makros in Ihren Excel-Einstellungen. 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 Fenster „Microsoft Visual Basic for Applications“ 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 gesamten 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 Problembehebung:
- Stellen Sie sicher, dass die Spalenauswahl mit Ihren Daten übereinstimmt: die Gruppen- und Wertsäulen müssen korrekt ausgerichtet sein.
- Wenn der Datenkopf enthalten ist, passen Sie den Startindex der Schleife im Code an, um eine korrekte Rangfolge zu gewährleisten (abhängig von 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 Makrosicherheitswarnungen stoßen, überprüfen Sie die Makrosicherheitseinstellungen von Excel unter Datei > Optionen > Vertrauenszentrum.
Diese VBA-Methode bietet Flexibilität und robuste Leistung für fortgeschrittene 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.
Die besten Office-Produktivitätstools
Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre Produktivität zu steigern und Zeit zu sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt die Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!