Above - fonction de graphique

Above() évalue une expression au niveau de la ligne située au-dessus de la ligne active dans 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 située directement au-dessus. Pour les autres graphiques que les tables, l'évaluation de la fonction Above() porte sur la ligne située au-dessus de la ligne active dans l'équivalent du tableau simple du graphique.

Syntaxe :  

Above([TOTAL] expr [ , offset [,count]])

Type de données renvoyé : double

Arguments :  

Argument Description
expr Expression ou champ contenant les données à mesurer.
offset

Si vous spécifiez un décalage offsetn 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.

Voir  : Définition de l'étendue d'une agrégation

Pour la première ligne d'un segment de colonne, la fonction renvoie une valeur NULL, puisqu'il n'y a pas de ligne au-dessus.

Remarque: Un segment de colonne se définit comme un sous-ensemble de cellules consécutives dotées des mêmes valeurs de dimensions dans l'ordre de tri actif. Les fonctions graphiques d'inter-enregistrements sont calculées dans le segment de colonne excluant la dimension située le plus à droite dans l'équivalent du tableau simple du graphique. Si le graphique ne comprend qu'une seule dimension ou si le qualificateur TOTAL est spécifié, l'évaluation de l'expression porte sur la table entière.
Remarque: 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.

Limitations :  

Les appels récursifs renvoient la valeur NULL.

Exemples et résultats :  

Exemple 1 :  

Customer Sum(Sales) Above(Sum(Sales)) Sum(Sales) + Above(Sum(Sales)) Above offset 3 Higher?
  2566 - - - -
Astrida 587 - - - -
Betacab 539 587 1126 - -
Canutility 683 539 1222 - Higher
Divadip 757 683 1440 1344 Higher
Graphique de la table pour l'exemple 1.

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 Above(Sum(Sales)).

La colonne Above(Sum(Sales)) renvoie NULL pour la ligne Customer contenant Astrida, puisqu'il n'y a aucune ligne au-dessus. Le résultat de la ligne Betacab affiche la valeur de Sum(Sales) pour Astrida tandis que le résultat relatif à Canutility indique la valeur de Sum(Sales) pour Betacab et ainsi de suite.

Pour la colonne intitulée Sum(Sales)+Above(Sum(Sales)), la ligne relative à Betacab affiche le résultat de l'addition des valeurs Sum(Sales) des lignes Betacab + Astrida (539+587). Le résultat de la ligne Canutility affiche le résultat de l'addition des valeurs Sum(Sales) de Canutility + Betacab (683+539).

La mesure intitulée Above offset 3, créée à l'aide de l'expression Sum(Sales)+Above(Sum(Sales), 3), comporte l'argument offset, défini sur 3, et a pour effet de prendre la valeur de la ligne située trois lignes au-dessus de la ligne active. Elle ajoute la valeur Sum(Sales) de la ligne Customer active à la valeur de la ligne Customer située trois lignes au-dessus. Les valeurs renvoyées pour les trois premières lignes Customer sont nulles.

La table indique également des mesures plus complexes : une valeur créée à partir de Sum(Sales)+Above(Sum(Sales)) et une autre intitulée Higher?, créée à partir de IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').

Conseil: Cette fonction peut également s'utiliser dans d'autres graphiques que les tables, dans les histogrammes par exemple.
Conseil: Pour les autres types de graphique, convertissez le graphique en équivalent de tableau simple afin de pouvoir facilement interpréter la ligne à laquelle la fonction est liée.

Exemple 2 :  

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.

Dans la représentation suivante, qui montre le graphique de la table de l'exemple 2, la dernière dimension triée étant Month, la fonction Above procède aux évaluations sur la base des mois. Une série de résultats est présentée pour chaque valeur Product associée à chaque mois (Jan à Aug), un segment de colonne. Vient ensuite une série correspondant au segment de colonne suivant : chaque élément Month associé à l'élément Product suivant. Un segment de colonne est prévu pour chaque valeur Customer associée à chaque élément Product.

Customer Product Month Sum(Sales) Above(Sum(Sales))
      2566 -
Astrida AA Jan 46 -
Astrida AA Feb 60 46
Astrida AA Mar 70 60
Astrida AA Apr 13 70
Astrida AA May 78 13
Astrida AA Jun 20 78
Astrida AA Jul 45 20
Astrida AA Aug 65 45
Graphique de la table pour l'exemple 2.

Exemple 3 :  

Dans la représentation du graphique de la table de l'exemple 3, la dernière dimension triée correspond à Product. Pour obtenir ce résultat, déplacez la dimension Product en position 3 sous l'onglet Tri dans le panneau des propriétés. La fonction Above est évaluée pour chaque ligne Product. Étant donné qu'il n'y a que deux produits, AA et BB, chaque série ne comporte qu'un seul résultat différent de null. Sur la ligne BB du mois Jan, la valeur de Above(Sum(Sales)) est 46. Pour la ligne AA, la valeur est nulle. La valeur de chaque ligne AA de chaque mois sera toujours nulle, car il n'existe pas de valeur de Product au-dessus de AA. La seconde série est évaluée d'après AA et BB pour le mois Feb, pour la valeur Customer, Astrida. Dès lors que tous les mois ont été évalués pour Astrida, la séquence est répétée pour le second CustomerBetacab, et ainsi de suite.

Customer Product Month Sum(Sales) Above(Sum(Sales))
      2566 -
Astrida AA Jan 46 -
Astrida BB Jan 46 46
Astrida AA Feb 60 -
Astrida BB Feb 60 60
Astrida AA Mar 70 -
Astrida BB Mar 70 70
Astrida AA Apr 13 -
Astrida BB Apr 13 13
Graphique de la table pour l'exemple 3.

Exemple 4 :  

Résultat

La fonction Above peut s'utiliser comme donnée d'entrée dans les fonctions de plage. Par exemple : RangeAvg (Above(Sum(Sales),1,3)).

Dans les arguments de la fonction Above(), offset est défini sur 1 et count est défini sur 3. La fonction recherche les résultats de l'expression Sum(Sales) dans les trois lignes situées immédiatement au-dessus de la ligne active dans le segment de colonne (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().

Astrida
Betacab
Canutility
Divadip :
-
587
563
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.