Rank - fonction de graphique
Rank() évalue les lignes du graphique dans l'expression et, pour chaque ligne, affiche la position relative de la valeur de la dimension évaluée dans l'expression. Lors de l'évaluation de l'expression, la fonction compare le résultat à celui des autres lignes contenant le segment de colonne actif et renvoie le classement de la ligne active dans ce segment.
Dans d'autres graphiques que les tables, le segment de colonne actif est défini tel qu'il apparaît dans l'équivalent du tableau simple du graphique.
Rank([TOTAL expr[, mode[, fmt]])
double
- expr : Expression ou champ contenant les données à mesurer.
- mode : Spécifie la représentation numérique du résultat de la fonction.
- fmt : Spécifie la représentation textuelle du résultat de la fonction.
- TOTAL : Si le graphique est unidimensionnel ou si l'expression est précédée du qualificateur TOTAL, l'évaluation de la fonction porte sur la colonne entière. Si la table ou l'équivalent en tableau comporte plusieurs dimensions verticales, le segment de colonne actif comprend uniquement les lignes contenant les mêmes valeurs que la ligne active dans toutes les colonnes de dimensions, à l'exception de la colonne affichant la dernière dimension dans l'ordre de tri inter-champs.
Le classement est renvoyé sous forme de valeur double, qui est, dans le cas d'un classement unique pour chaque ligne, un entier compris entre 1 et le nombre de lignes dans le segment de colonne actif.
Dans le cas où plusieurs lignes partagent le même classement, il est possible de contrôler la représentation alphanumérique à l'aide des paramètres mode et fmt.
mode
Le second argument, mode, admet les valeurs suivantes :
Valeur | Description |
---|---|
0 (par défaut) |
Si tous les rangs du groupe commun sont inférieurs à la valeur médiane du classement total, toutes les lignes obtiennent le rang le plus bas du groupe. Si tous les rangs du groupe commun sont supérieurs à la valeur médiane du classement total, toutes les lignes obtiennent le rang le plus élevé du groupe. Si les rangs du groupe commun se trouvent de part et d'autre de la valeur médiane, toutes les lignes obtiennent la valeur correspondant à la moyenne du classement supérieur et du classement inférieur du segment de colonne entier. |
1 | Rang le plus bas sur toutes les lignes. |
2 | Rang moyen sur toutes les lignes. |
3 | Rang le plus élevé sur toutes les lignes. |
4 | Rang le plus bas sur la première ligne, puis incrémenté d'une unité pour chaque ligne. |
fmt
Le troisième argument, fmt, admet les valeurs suivantes :
Valeur | Description |
---|---|
0 (par défaut) | Valeur faible - valeur élevée sur toutes les lignes (par exemple 3 - 4). |
1 | Valeur faible sur toutes les lignes. |
2 | Valeur faible sur la première ligne, vide sur les lignes suivantes. |
L'ordre des lignes pour le mode 4 et le format fmt 2 est déterminé par l'ordre de tri des dimensions du graphique.
Créez deux graphiques à partir des dimensions Product et Sales et un autre à partir de Product et UnitSales. Ajoutez des mesures comme indiqué dans la table suivante.
Créez une table comportant les dimensions Customer et Sales et la mesure Rank(Sales).
Le résultat dépend de l'ordre de tri des dimensions. Si la table est triée d'après la dimension Customer, la table répertorie toutes les valeurs de la dimension Sales pour Astrida, puis Betacab, et ainsi de suite. Les résultats de la mesure Rank(Sales) indiquent 10 pour la valeur Sales 12, 9 pour la valeur Sales 13, et ainsi de suite, avec une valeur de rang de 1 renvoyée pour la valeur Sales 78. Le segment de colonne suivant commence par Betacab, pour lequel la première valeur de la dimension Sales dans le segment est égale à 12. La valeur de rang correspondante fournie pour la mesure Rank(Sales) est 11.
Si la table est triée sur la base de la dimension Sales, les segments de colonne se composent des valeurs de la dimension Sales et des valeurs Customer correspondantes. Étant donné qu'il y a deux valeurs Sales égales à 12 (pour Astrida et Betacab), la valeur de Rank(Sales) pour ce segment de colonne correspond à 1-2, pour chaque valeur définie sous Customer. Cela s'explique par le fait qu'il y a deux valeurs de dimension Customer pour la valeur de dimension Sales 12. S'il y avait eu 4 valeurs, le résultat serait 1-4, pour toutes les lignes. Cela montre le résultat obtenu avec la valeur par défaut (0) de l'argument fmt.
Remplacez la dimension Customer par la dimension Product et ajoutez la mesure Rank(Sales,1,2).
1 est renvoyé sur la première ligne de chaque segment de colonne tandis que toutes les autres lignes restent vides, car les arguments mode et fmt sont définis sur 1 et 2 respectivement.
Données utilisées dans les exemples :
ProductData:
Load * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD|0|25
Canutility|AA|8|15
Canutility|CC|0|19
] (delimiter is '|');
Sales2013:
crosstable (Month, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|');