Power Pivot – Wichtige FunktionenRanglisten und Platzierungen mit der DAX-Funktion RANKX()
Wofür Rang- oder Reihenfolgen benötigt werden
Im Controlling ist es oft entscheidend, zu wissen, wer oder was vorn liegt:
- Welcher Kunde erzielt den höchsten Umsatz?
- Welches Produkt verkauft sich am häufigsten?
- Oder welcher Standort ist im Vergleich am rentabelsten?
Mit der DAX-Funktion RANKX() erstellen Sie solche Ranglisten im Handumdrehen – dynamisch, filterbar und immer aktuell.
In diesem Beitrag erfahren Sie, wie RANKX() funktioniert, welche Parameter es gibt, und wie Sie damit aussagekräftige Ranganalysen oder Reihenfolgen in Power Pivot aufbauen.
Was macht die Funktion RANKX()?
Die Funktion RANKX() weist jedem Element einer Tabelle oder Gruppe eine Rangnummer zu – basierend auf dem Ergebnis eines Ausdrucks (zum Beispiel Umsatz, Gewinn, Menge).
Kurz gesagt: RANKX berechnet Ranglisten und Reihenfolgen auf Basis einer Kennzahl (Measure).
Beispielsweise können Sie damit feststellen:
- welche vier Vertriebsteams die meisten Kunden betreuen,
- welche Kunden zu den Top-10-Kunden gemessen am Umsatz gehören oder
- wie Ihr Unternehmen aktuell im Vergleich zu anderen Jahren abschneidet.
Syntax: RANKX(<Tabelle>,<Ausdruck>, [<Wert>], [<Reihenfolge>], [<Fehlende Werte behandeln>])
Die Parameter und ihre Bedeutung sind:
- Tabelle: Die Tabelle oder Gruppe, über die gerankt werden soll (zum Beispiel tbl_Produkte).
- Ausdruck: Der Wert, nach dem sortiert wird (zum Beispiel Umsatz oder Gewinn).
- Wert (optional): Ein bestimmter Wert, für den das Ranking berechnet wird (meist weggelassen).
- Reihenfolge (optional): Sortierrichtung – DESC (absteigend, Standard) oder ASC (aufsteigend).
- Fehlende Werte behandeln (optional): Wie gleichwertige Werte behandelt werden (Dense oder Skip).
Unterschied zwischen Dense und Skip
Die beiden Optionen beeinflussen, wie gleiche Werte gerankt werden:
- Dense: Werte: 100, 100, 80, 60 → Ränge: 1, 1, 2, 3
- Skip: Werte: 100, 100, 80, 60 → Ränge: 1, 1, 3, 4
Dense ist in den meisten Controlling-Reports empfehlenswert, weil es kompaktere Rangfolgen erzeugt.
Einfaches Beispiel – Umsatzranking pro Produkt
Sie möchten die Produkte in Ihrer Tabelle tbl_Produkte nach ihrem Umsatz sortieren.
Sie haben bereits das Measure [Umsatz] erstellt:
Umsatz :=SUMX(tbl_Bestellungen; tbl_Bestellungen[Menge] * tbl_Bestellungen[Einzelpreis])
Darauf aufbauend erstellen Sie nun ein neues Measure:
Rang_Produkt :=RANKX( ALL(tbl_Produkte[Produktname]); [Umsatz];; DESC; Dense)
Erklärung Schritt für Schritt:
- ALL(tbl_Produkte[Produktname]): entfernt Filter auf einzelne Produkte, damit das Ranking über alle Produkte hinweg berechnet wird. Andernfalls würde Power Pivot innerhalb der aktuell sichtbaren Produkte ranken.
- [Umsatz]: ist das Measure, nach dem die Reihenfolge bestimmt wird.
- Leeres drittes Argument (; ;): ist optional – es könnte einen bestimmten Vergleichswert enthalten, wird hier aber nicht benötigt.
- DESC: bedeutet: höchster Umsatz = Rang 1.
- Dense: sorgt dafür, dass bei gleichen Umsätzen keine Rangnummern übersprungen werden. Wenn zwei Produkte denselben Umsatz haben, bekommen beide Rang 1, und das nächste Produkt Rang 2 (nicht Rang 3).
Anwendung in der Praxis
In Ihrer Pivot-Tabelle fügen Sie folgende Felder hinzu:
- Zeilen: tbl_Produkte[Produktname]
- Werte: [Umsatz] und [Rang_Produkt]
Ergebnis: Sie sehen eine Rangliste aller Produkte – automatisch nach Umsatz sortiert. Das umsatzstärkste Produkt steht an erster Stelle (Rang 1).
Das funktioniert auch für Monate oder Quartale, wenn Sie die Hierarchie aus Ihrer Kalendertabelle verwenden.
Praktische Tipps für den Einsatz
- ALL() nicht vergessen: Damit wird der Filter auf die Tabelle entfernt, sodass RANKX() die gesamte Gruppe bewertet.
- Immer mit einem Measure arbeiten: Verwenden Sie [Umsatz] oder ein anderes vorhandenes Measure als Grundlage.
- Dichte Rangfolge bevorzugen: Dense ist übersichtlicher und besser lesbar in Pivot-Tabellen.
- Visualisieren Sie das Ranking: In Kombination mit Balkendiagrammen oder bedingter Formatierung können Sie Ihre Top-Produkte oder Top-Kunden besonders hervorheben.
Fazit
Mit der Funktion RANKX() erstellen Sie dynamische Ranglisten für jede Kennzahl in Ihrem Modell: Produkte, Kunden, Jahre, Regionen oder Standorte.
Sie ist ein leistungsfähiges Werkzeug, um:
- Top-N-Analysen durchzuführen,
- Leistungsträger zu identifizieren,
- und Entwicklungen über Zeiträume zu vergleichen.
In Kombination mit CALCULATE() oder ALL() wird RANKX() zu einer der vielseitigsten Funktionen im DAX-Repertoire – ideal für Vertriebs-, Ergebnis- oder Produktanalysen im Controlling.






