RANKX
Gilt für:Berechnete SpalteBerechnete TabelleMeasureVisuelle Berechnung
Gibt die Rangfolge einer Zahl in einer Liste von Zahlen für jede Zeile im table-Argument zurück.
Syntax
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Parameter
Tabelle
Ein DAX-Ausdruck, der eine Tabelle mit Daten zurückgibt, für die der Ausdruck ausgewertet wird.
expression
Ein DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt. Der Ausdruck wird für jede Zeile von table ausgewertet, um sämtliche möglichen Werte für die Rangfolge zu generieren. Lesen Sie den Abschnitt „Hinweise“, um das Verhalten der Funktion zu verstehen, wenn expression als BLANK ausgewertet wird.
value
(Optional) Jeder DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt, dessen Rang bestimmt werden soll. Lesen Sie den Abschnitt „Hinweise“, um das Verhalten der Funktion zu verstehen, wenn value nicht im Ausdruck gefunden wird.
Wenn der value-Parameter nicht angegeben wird, wird stattdessen der Wert von „expression“ in der aktuellen Zeile verwendet.
order
(Optional) Ein Wert, der angibt, wie die Rangfolge von value ermittelt wird – von niedrig zu hoch oder umgekehrt:
value | alternativer Wert | BESCHREIBUNG |
---|---|---|
0 (Null) | FALSE | Legt die Rangfolge in absteigender Reihenfolge der Werte des Ausdrucks fest. Wenn „value“ gleich der höchsten Zahl im Ausdruck ist, gibt RANKX „1“ zurück. Dies ist der Standardwert, wenn kein Parameter für die Reihenfolge angegeben wird. |
1 | TRUE | Legt die Rangfolge in aufsteigender Reihenfolge des Ausdrucks fest. Wenn „value“ gleich der niedrigsten Zahl im Ausdruck ist, gibt RANKX „1“ zurück. |
Ties
(Optional) Eine Enumeration, die definiert, wie die Rangfolge bestimmt wird, wenn Ties vorhanden sind.
Enumeration | BESCHREIBUNG |
---|---|
Skip | Der nächste Rangwert nach einem Tie ist der Rangwert des Ties zuzüglich der Anzahl verknüpfter Werte. Wenn z. B. fünf (5) Werte mit einem Rangwert von 11 verknüpft sind, erhält der nächste Wert den Rang 16 (11 + 5). Dies ist der Standardwert, wenn der ties-Parameter nicht angegeben wird. |
Dense | Der nächste Rangwert nach einem Tie ist der nächste Rangwert. Wenn z. B. fünf (5) Werte mit einem Rang von 11 verknüpft sind, erhält der nächste Wert den Rang 12. |
Rückgabewert
Die Rangnummer von value unter sämtlichen möglichen Werten von expression, ausgewertet für alle Zeilen von table-Nummern.
Bemerkungen
Wenn expression oder value als BLANK ausgewertet wird, wird er als 0 (Null) für alle Ausdrücke behandelt, die eine Zahl ergeben, bzw. als leerer Text für alle Textausdrücke.
Wenn sich value nicht unter sämtlichen möglichen Werten von expression befindet, fügt RANKX vorübergehend value zu den Werten von expression hinzu und wertet RANKX nochmal aus, um den korrekten Rang von value zu bestimmen.
Optionale Argumente können übersprungen werden, indem ein leeres Komma (,) in der Argumentliste gesetzt wird, z. B. RANKX(Inventory, [InventoryCost],,,"Dense").
Gleichheitsbezogene Vergleiche (=, <>, >= und <=) zwischen Werten mit dem Datentyp Dezimalzahl können bei Verwendung der RANKX-Funktion möglicherweise unerwartete Ergebnisse zurückgeben. Es können falsche Ergebnisse auftreten, da Werte vom Datentyp Dezimalzahl als Gleitkommazahlen nach IEEE-Standard 754 gespeichert werden und inhärente Einschränkungen der Genauigkeit aufweisen. Zum Vermeiden unerwarteter Ergebnisse ändern Sie den Datentyp in Feste Dezimalzahl, oder führen Sie mithilfe von ROUND ein erzwungenes Runden durch.
Die Verwendung dieser Funktion im DirectQuery-Modus wird nicht unterstützt, wenn sie in berechneten Spalten oder RLS-Regeln (Row-Level Security) eingesetzt wird.
Beispiel
Die folgende berechnete Spalte in der Tabelle der Produkte berechnet den Umsatzrang für jedes Produkt im Internet-Kanal.
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))