Partage via


RANK

s’applique à :colonne calculéetable calculéemesurecalcul visuel

Retourne le classement du contexte actuel dans la partition spécifiée, trié par ordre spécifié. Si une correspondance est introuvable, le classement est vide.

Syntaxe

RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Paramètres

Terme Définition
ties (Facultatif) Définit comment gérer le classement lorsque deux lignes ou plus sont liées.
Si spécifié, la valeur prise en charge est DENSE ou SKIP.
En cas d’omission :
- Valeurs par défaut pour SKIP
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée.
Si spécifié, toutes les colonnes de orderBy et partitionBy doivent provenir de celle-ci.
s’il est omis :
- orderBy doit être spécifié explicitement.
- Toutes les colonnes orderBy et partitionBy doivent être complètes et proviennent d’une table unique.
: valeur par défaut ALLSELECTED() de toutes les colonnes dans orderBy et partitionBy.
axis (Facultatif) Axe de la forme visuelle. Disponible uniquement dans les calculs visuels et remplace relation.
orderBy (Facultatif) Clause ORDERBY() contenant les colonnes qui définissent la façon dont chaque partition est triée.
s’il est omis :
- relation doit être spécifié explicitement.
: la commande par défaut par chaque colonne de relation qui n’est pas déjà spécifiée dans partitionBy.
blanks (Facultatif) Énumération qui définit comment gérer les valeurs vides lors du tri de l'relation ou axis.
Les valeurs prises en charge sont les suivantes :
  • DEFAULT (valeur par défaut), où le comportement des valeurs numériques est des valeurs vides sont classés entre zéro et valeurs négatives. Le comportement des chaînes est des valeurs vides classées avant toutes les chaînes, y compris les chaînes vides.
  • FIRST, les espaces sont toujours classés au début, quel que soit l’ordre croissant ou décroissant.
  • LAST, les espaces sont toujours triés à la fin, quel que soit l’ordre croissant ou décroissant.

Remarque, lorsque le paramètre blanks et les vides dans la fonction ORDERBY() () sur les expressions individuelles sont tous deux spécifiés, blanks sur l’expression orderBy individuelle prend la priorité pour l’expression orderBy appropriée, et les expressions orderBy sans blanks être spécifiées respecteront le paramètre blanks sur la fonction parente.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon dont relation est partitionnée. En cas d’omission, relation est traité comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent comment faire correspondre les données et identifier la ligne actuelle.
reset (Facultatif) Disponible uniquement dans les calculs visuels. Indique si le calcul est réinitialisé et au niveau de la hiérarchie des colonnes de la forme visuelle. Les valeurs acceptées sont : une référence de champ à une colonne dans la forme visuelle actuelle, NONE (valeur par défaut), LOWESTPARENT, HIGHESTPARENTou un entier. Le comportement dépend du signe entier :
- Si zéro ou omis, le calcul ne se réinitialise pas. Équivalent à NONE.
- Si positif, l’entier identifie la colonne à partir du plus haut, indépendamment du grain. HIGHESTPARENT équivaut à 1.
- Si négatif, l’entier identifie la colonne à partir de la plus basse, par rapport au grain actuel. LOWESTPARENT équivaut à -1.

Valeur de retour

Numéro de classement du contexte actuel.

Remarques

  • Chaque orderBy, partitionByet colonne matchBy doivent avoir une valeur externe correspondante pour vous aider à définir la ligne actuelle sur laquelle fonctionner, avec le comportement suivant :

    • S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
    • S’il n’existe aucune colonne externe correspondante, puis :
      • RANK détermine d’abord toutes les orderBy, les partitionByet les colonnes matchBy qui n’ont aucune colonne externe correspondante.
      • Pour chaque combinaison de valeurs existantes pour ces colonnes dans RANK contexte parent, RANK est évaluée et une ligne est retournée.
      • RANKla sortie finale est un numéro de classement.
  • Si matchBy est présent, RANK essaie d’utiliser des colonnes dans matchBy et partitionBy pour idenfity de la ligne actuelle.

  • Si les colonnes spécifiées dans orderBy et partitionBy ne peuvent pas identifier de manière unique chaque ligne dans relation, deux lignes ou plus peuvent avoir le même classement et le classement sera déterminé par le paramètre de liens.

  • RANK retourne une valeur vide pour les lignes totales. Il est recommandé de tester soigneusement votre expression.

  • RANK ne compare pas à RANKX, car SUM compare à SUMX.

  • reset peuvent être utilisés uniquement dans les calculs visuels et ne peuvent pas être utilisés en combinaison avec orderBy ou partitionBy. Si reset est présente, axis peut être spécifié, mais relation ne peut pas le faire.

Exemple 1 : colonne calculée

Requête DAX suivante :

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "Rank",
    RANK(
    	DENSE,
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
        LAST,
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Retourne une table qui classe chaque zone géographique avec le même EnglishCountryRegionName, par leur StateProvinceName et City. Les valeurs de colonne vides orderBy sont triées à la fin.

Exemple 2 : calcul visuel

Le calcul visuel suivant DAX requêtes :

SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

Créez deux colonnes qui se classent chaque mois par le total des ventes, à la fois dans chaque année et dans l’historique entier.

La capture d’écran ci-dessous montre la matrice visuelle et la première expression de calcul visuel :

DAX de calcul visuel

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER