Power Pivot – Wichtige FunktionenRanglisten und Platzierungen mit der DAX-Funktion RANKX()

Wie Sie mit Power Pivot und RANKX() Ihre wichtigsten Kunden und Produkte identifizieren und eine Rang- oder Reihenfolge erstellen. Mit Beispielen für die Datenanalyse und den Einsatz von 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)

Die DAX-Funktion RANKX() in Power Pivot

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).

Ergebnis der Rangfunktion RANKX() in der Pivot-Tabelle für die Datenanalyse

Beispiel 2 – Ranking nach Kundenumsatz

Analog funktioniert die Rangberechnung auch für Kunden:

Rang_Kunde :=RANKX( ALL(tbl_Kunden[Kundenname]); [Umsatz]; ; DESC; Dense)

Damit sehen Sie auf einen Blick, welche Kunden Ihre Top-Umsatzträger sind.

Ergebnis: Die wichtigsten Kunden bei der Umsatzanalyse

Beispiel 3 – Ranking nach Monaten oder Jahren

Auch Zeitvergleiche sind möglich.

Beispiel: Ranking der Jahre nach Gesamtumsatz.

Rang_Jahr :=RANKX( ALL(tbl_Kalender[Jahr]); [Umsatz]; ; DESC)

So sehen Sie, welches Jahr das umsatzstärkste war.

Ergebnis: Die Umsatzstärksten Jahre des Unternehmens

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.

Dazu im Management-Handbuch

Vorlagen nutzen

Weitere Kapitel zum Thema