Top
Top() La fonction évalue une expression au niveau de la première ligne (du haut) d'un segment de colonne d'une table. La ligne pour laquelle elle est calculée dépend de la valeur de décalage offset (si présente), le paramètre par défaut étant la ligne du haut. Pour les autres graphiques que les tables, l'évaluation de la fonction Top() porte sur la première ligne de la colonne active dans l'équivalent du tableau simple du graphique.
Top([TOTAL] expr [ , offset [,count ]])
double
- expr : Expression ou champ contenant les données à mesurer.
- offset : Si vous spécifiez un décalage offset n supérieur à 0, l'évaluation de l'expression est déplacée de n lignes au-dessus de la ligne active. Si vous spécifiez un décalage égal à 0, l'expression est évaluée sur la ligne active. Si vous spécifiez un décalage négatif, la fonction Above aboutit au même résultat que la fonction Below avec le décalage positif correspondant.
- count : Si vous spécifiez un troisième argument count supérieur à 1, la fonction renvoie une plage de valeurs count, une pour chacune des lignes de table count situées au-dessus de la cellule de départ. De cette façon, la fonction peut être utilisée comme argument pour l'une des fonctions de plage spéciales. Fonctions de plage
- TOTAL : Si la table est unidimensionnelle ou si le qualificateur TOTAL est utilisé comme argument, le segment de colonne actif est toujours égal à la colonne entière.
-
Le tri sur les valeurs des ordonnées dans les graphiques ou le tri par colonnes d'expressions dans les tableaux n'est pas autorisé lors de l'utilisation de cette fonction de graphique dans l'une des expressions du graphique. Ces options de tri sont donc automatiquement désactivées. Lorsque vous utilisez cette fonction de graphique dans une visualisation ou un tableau, le tri de la visualisation revient à l'entrée triée via cette fonction.
-
Les appels récursifs renvoient la valeur NULL.
Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) + Top(Sum(Sales)) | Top offset 3 |
---|---|---|---|---|
2566 | 587 | 3153 | 3249 | |
Astrida | 587 | 587 | 1174 | 1270 |
Betacab | 539 | 587 | 1126 | 1222 |
Canutility | 683 | 587 | 1270 | 1366 |
Divadip | 757 | 587 | 1344 | 1440 |
Dans la représentation du graphique de table affiché dans cet exemple, la table est créée à partir de la dimension Customer et des mesures Sum(Sales) et Top(Sum(Sales)).
La colonne Top(Sum(Sales)) renvoie 587 pour toutes les lignes, car il s'agit de la valeur de la ligne supérieure : Astrida.
La table présente également des mesures plus complexes : une mesure créée à partir de Sum(Sales)+Top(Sum(Sales)) et une autre intitulée Top offset 3, créée à l'aide de l'expression Sum(Sales)+Top(Sum(Sales), 3) et comportant l'argument offset défini sur 3. Elle ajoute la valeur Sum(Sales) de la ligne active à la valeur de la troisième ligne en partant de la ligne du haut, autrement dit, la ligne active plus la valeur correspondant à Canutility.
Dans les représentations des graphiques de table affichés dans cet exemple, d'autres dimensions ont été ajoutées aux graphiques : Month et Product. Pour les graphiques comportant plus d'une dimension, les résultats d'expressions contenant les fonctions Above, Below, Top et Bottom dépendent de l'ordre dans lequel les dimensions de colonne sont triées par QlikView. QlikView évalue les fonctions d'après les segments de colonne résultant de la dernière dimension qui a été triée. L'ordre de tri des colonnes est déterminé sous l'option Trier. Il ne correspond pas nécessairement à l'ordre d'affichage des colonnes dans une table. (Certaines lignes ne sont pas affichées par souci d'économie d'espace.)
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 46 |
Astrida | AA | Mar | 70 | 46 |
... | ... | ... | ... | ... |
Astrida | AA | Sep | 78 | 46 |
Astrida | AA | Oct | 12 | 46 |
Astrida | AA | Nov | 78 | 46 |
Astrida | AA | Dec | 22 | 46 |
Astrida | BB | Jan | 46 | 46 |
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 60 |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | 70 |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | 13 |
Astrida | BB | Apr | 13 | 13 |
Pour plus de détails, voir l'exemple 2 de la fonction Above.
La fonction Top peut s'utiliser comme donnée d'entrée dans les fonctions de plage. Par exemple : RangeAvg (Top(Sum(Sales),1,3)).
Dans les arguments de la fonction Top(), offset est défini sur 1 et count sur 3. La fonction recherche les résultats de l'expression Sum(Sales) dans les trois lignes, en commençant par la ligne située en dessous de la ligne inférieure dans le segment de colonne (car offset=1) et les deux lignes situées en dessous (lorsqu'il y a une ligne). Ces trois valeurs sont utilisées comme données d'entrée dans la fonction RangeAvg(), qui calcule la moyenne des valeurs de la plage de nombres fournie.
Une table comprenant la dimension Customer donne les résultats suivants pour l'expression RangeAvg().
Customer | RangeAvg (Top(Sum(Sales),1,3)) |
---|---|
Astrida | 603 |
Betacab | 603 |
Canutility | 603 |
Divadip | 603 |
Données utilisées dans les exemples :
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
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 '|');
Pour que les mois soient triés dans l'ordre correct, au moment de la création des graphiques, accédez à l'onglet Sort des propriétés du graphique, puis cochez la case Expression sous Sort by. Dans la zone de l'expression, spécifiez Monthnumber.