RANKX
s’applique à :colonne calculéetable calculéemesurecalcul visuel
Retourne le classement d’un nombre dans une liste de nombres pour chaque ligne de l’argument table
.
Syntaxe
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Paramètres
table
toute expression DAX qui retourne une table de données sur laquelle l’expression est évaluée.
expression
toute expression DAX qui retourne une valeur scalaire unique. L’expression est évaluée pour chaque ligne de table
, afin de générer toutes les valeurs possibles pour le classement. Consultez la section remarques pour comprendre le comportement de la fonction lorsque expression
prend la valeur BLANK.
value
(Facultatif) Toute expression DAX qui retourne une valeur scalaire unique dont le rang est à trouver. Consultez la section remarques pour comprendre le comportement de la fonction lorsque value
est introuvable dans l’expression.
Lorsque le paramètre value
est omis, la valeur de l’expression à la ligne actuelle est utilisée à la place.
order
(facultatif) Valeur qui spécifie comment classer value
, faible à élevé ou élevé à faible :
valeur | autre valeur | Description |
---|---|---|
0 (zéro) | FALSE |
Classe dans l’ordre décroissant des valeurs d’expression. Si la valeur est égale au nombre le plus élevé dans l’expression, RANKX retourne 1. Il s’agit de la valeur par défaut lorsque le paramètre order est omis. |
1 | TRUE |
Le classement s’effectue dans l’ordre croissant des valeurs de l’expression. Si la valeur est égale au nombre le plus bas dans l’expression, RANKX retourne 1. |
ties
(facultatif) Énumération qui définit comment déterminer le classement lorsqu’il existe des liens.
énumération | Description |
---|---|
Skip |
La valeur de classement suivante, après une égalité, est la valeur de classement de l’égalité, ainsi que le nombre de valeurs liées. Par exemple, si cinq (5) valeurs sont liées avec un rang de 11, la valeur suivante reçoit un rang de 16 (11 + 5). Il s’agit de la valeur par défaut lorsque ties paramètre est omis. |
Dense |
La valeur de classement suivante, après une égalité, est la valeur de classement suivante. Par exemple, si cinq (5) valeurs sont liées avec un rang de 11, la valeur suivante reçoit un rang de 12. |
Valeur de retour
Numéro de classement de value
parmi toutes les valeurs possibles de expression
évaluées pour toutes les lignes de table
nombres.
Notes
Si
expression
ouvalue
est évalué à BLANK il est traité comme un 0 (zéro) pour toutes les expressions qui entraînent un nombre, ou comme un texte vide pour toutes les expressions de texte.Si
value
n’est pas parmi toutes les valeurs possibles deexpression
, RANKX ajoute temporairementvalue
aux valeurs deexpression
et réévalue RANKX pour déterminer le rang approprié devalue
.Les arguments facultatifs peuvent être ignorés en plaçant une virgule vide (,) dans la liste d’arguments, par exemple
RANKX(Inventory, [InventoryCost],,,"Dense")
.Les comparaisons liées à l’égalité (
, , , et ) entre les valeurs avec le type de données nombre décimal peuvent potentiellement retourner des résultats inattendus lors de l’utilisation de fonction. Des résultats incorrects peuvent se produire, car les valeurs avec nombre décimal type de données sont stockées en tant que nombres à virgule flottante IEEE Standard 754 et ont des limitations inhérentes à leur précision. Pour éviter les résultats inattendus, modifiez le type de données en nombre décimal fixe ou effectuez un arrondi forcé à l’aide de ROUND. Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).
Exemple
La colonne calculée suivante dans la table Products calcule le classement des ventes pour chaque produit du canal Internet.
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))