RANKX

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 l’argument table de sorte que toutes les valeurs pouvant être classées soient générées. Consultez la section Remarques pour comprendre le comportement de la fonction quand l’expression prend une valeur vide.

value
(Facultatif) Toute expression DAX qui retourne une valeur scalaire unique dont le classement doit être recherché. Consultez la section Remarques pour comprendre le comportement de la fonction quand le paramètre value n’est pas trouvé dans l’expression.

Quand 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 le paramètre value (ordre croissant ou décroissant) :

valeur Valeur alternative Description
0 (zéro) FAUX Le classement s’effectue dans l’ordre décroissant des valeurs de l’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 quand le paramètre order est omis.
1 VRAI Le classement s’effectue dans l’ordre croissant des valeurs de l’expression. Si la valeur est égale au nombre le plus faible dans l’expression, RANKX retourne 1.

ties
(Facultatif) Énumération qui définit comment déterminer le classement en présence d’égalités.

énumération Description
Ignorer Le rang qui suit une égalité correspond au rang de l’égalité plus le nombre de valeurs incluses dans l’égalité. Par exemple, si cinq (5) valeurs sont classées à égalité au rang 11, la valeur suivante sera classée au rang 16 (11 + 5).

Il s’agit de la valeur par défaut quand le paramètre ties est omis.
Dense Le rang qui suit une égalité est le rang suivant. Par exemple, si cinq (5) valeurs sont classées à égalité au rang 11, la valeur suivante sera classée au rang 12.

Valeur de retour

Rang du paramètre value parmi toutes les valeurs possibles de l’expression évaluées pour toutes les lignes de nombres de la table.

Notes

  • Si l’expression ou le paramètre value prend une valeur vide, il est traité comme un 0 (zéro) pour toutes les expressions qui génèrent un nombre ou comme du texte vide pour toutes les expressions de texte.

  • Si le paramètre value ne fait pas partie des valeurs possibles de l’expression, RANKX l’ajoute temporairementaux valeurs de l’expression et effectue une réévaluation pour déterminer son rangcorrect.

  • Vous pouvez ignorer les arguments facultatifs en plaçant une virgule (,) dans la liste d’arguments, par exemple RANKX(Inventory, [InventoryCost],,,"Dense")

  • Les comparaisons liées à l’égalité (=, <>, >= et <=) entre des valeurs avec le type de données Nombre décimal peuvent retourner des résultats inattendus lors de l’utilisation de la fonction RANKX. Des résultats incorrects peuvent se produire, car les valeurs avec le type de données Nombre décimal sont stockées en tant que nombres à virgule flottante conformément à la norme IEEE 754 et présentent des limitations inhérentes de précision. Pour éviter d’obtenir des 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 quand elle est utilisée dans des colonnes calculées ou des 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 Internet de chaque produit.

= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))