# Top - fonction de graphique

La fonction Top() é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

Arguments

| Argument | Description |
| --- | --- |
| expr | Expression ou champ contenant les données à mesurer. |
| offset | Si vous spécifiez un décalage offset de n supérieur à 1, l'évaluation de l'expression est déplacée de n lignes en dessous de la ligne supérieure.<br><br>Si vous spécifiez un décalage négatif, la fonction Top aboutit au même résultat que la fonction Bottom avec le décalage positif correspondant. |
| count | Si vous spécifiez un troisième paramètre count supérieur à 1, la fonction renvoie une plage de count valeurs, une pour chacune des count dernières lignes du segment de colonne actif. De cette façon, la fonction peut être utilisée comme argument pour l'une des fonctions de plage spéciales. [Fonctions de plage](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| 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.<br><br>[Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Note InformationsUn 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.

Note InformationsSi 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.

* Les appels récursifs renvoient la valeur NULL.

* 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.

Exemple : Expressions de graphique

| Exemple | Résultat |
| --- | --- |
| `Top( Sum(Sales) )` | Renvoie la valeur de `Sales` pour la première ligne (celle du haut) d'un segment de colonne dans un tableau. |

## Exemple - Les bases de Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `Year`

  * `Sales`

Script de chargement

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `Year`

Créez les mesures suivantes :

* `=Sum(Sales)`, pour trouver les ventes annuelles.

* `=Top(Sum(Sales))`, pour trouver la valeur des ventes pour la première année, c'est-à-dire la première ligne (celle du haut) d'une colonne dans un tableau.

* `=Sum(Sales) - Top(Sum(Sales))`, pour calculer la variance entre la valeur `Sales` de la ligne en cours et la valeur de la première ligne (celle du haut) d'une colonne.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, pour calculer la variance entre la valeur des ventes de la ligne en cours et la valeur de la troisième ligne à partir du haut.

* `=(Sales - Top(Sales)) / Top(Sales)`, pour renvoyer la variation de `Sales` sous forme de ratio/pourcentage par rapport à la première ligne. Pour afficher cette valeur sous forme de pourcentage, sous Formatage des nombres, sélectionnez Nombre &gt; Formatage simple &gt; 12,34 %.

Triez le tableau sur la dimension `Year` dans l'ordre croissant.

Tableau de résultats

| Year | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) - Top(Sum(Sales)) | Sum(Sales)-Top(Sum(Sales), 3) | (Sales - Top(Sales)) / Top(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1000 | 6200 | 6000 | - |
| 2019 | 1000 | 1000 | 0 | -200 | 0.00% |
| 2020 | 1500 | 1000 | 500 | 300 | 50.00% |
| 2021 | 1200 | 1000 | 200 | 0 | 20.00% |
| 2022 | 1800 | 1000 | 800 | 600 | 80.00% |
| 2023 | 1700 | 1000 | 700 | 500 | 70.00% |

En examinant les résultats, vous pouvez comparer les valeurs de `Sales` de la période en cours à celles de la période du haut (ou première période).

* La mesure `Sum(Sales) - Top(Sum(Sales))` renvoie la variation des valeurs `Sales` en comparant la période en cours à la première période.

* La mesure `Sum(Sales)-Top(Sum(Sales), 3)` renvoie la somme de `Sales` pour la ligne en cours moins la troisième période à partir du haut.

* La mesure `=(Sales - Top(Sales)) / Top(Sales)` renvoie la variation de `Sales` par rapport à la première période sous forme de pourcentage.

Note ConseilCette fonction peut également s'utiliser dans d'autres graphiques que les tables, dans les histogrammes par exemple.

Procédez comme suit :

Créez un graphique à barres et ajoutez ce champ comme dimension :

* `Year`

Créez la mesure suivante :

* `=Sum(Sales)- Top(Sum(Sales))`, pour renvoyer la variance des ventes entre la période en cours et la période du haut.

Graphique à barres montrant les résultats de la fonction Top

Graphique à barres montrant les résultats de la fonction Top

Graphique à barres montrant les résultats de la fonction TopTop ![Graphique à barres montrant la variance des ventes entre la période en cours et la période du haut (ou première période).](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

L'utilisation de la fonction `Top` dans un graphique à barres fournit une comparaison visuelle de la variance entre les ventes de la période en cours et celles de la période du haut (ou première période).

## Exemple - Scénario Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Script de chargement

```
Example:
LOAD * INLINE [
OrderID, Product, SalesValue, OrderDate
1, "Product A", 500, '2023-01-10'
2, "Product B", 300, '2023-01-15'
3, "Product C", 450, '2023-02-01'
4, "Product D", 700, '2023-02-20'
5, "Product E", 350, '2023-03-05'
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `Product`

Créez les mesures suivantes :

* `=RangeAvg(Top(Sum(SalesValue),1,3))`, pour renvoyer la moyenne des trois lignes du haut.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))`, pour calculer la variance entre la ligne en cours et la moyenne des 3 lignes du haut.

* `=Sum(SalesValue)`, pour calculer le total de `SalesValue` pour la ligne active.

Tableau de résultats

| Product | RangeAvg(Top(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 416.67 | 1883.33 | 2300 |
| 2019 | 416.67 | 83.33 | 500 |
| 2020 | 416.67 | --116.67 | 300 |
| 2021 | 416.67 | 33.33 | 450 |
| 2022 | 416.67 | 283.33 | 700 |
| 2023 | 416.67 | -66.67 | 350 |

Les résultats montrent comment utiliser une combinaison des fonctions `RangeSum` et `Top` pour analyser et comparer les valeurs des ventes.

## Exemple : Expression de graphique utilisant Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Deux tables de données appelées `Monthnames` et `Sales2013`.

Script de chargement

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, 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 (MonthText, 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 '|'); 
                                
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `Customer`

Créez les mesures suivantes :

* `=Sum(Sales)`, pour calculer la somme des ventes.

* `=Top(Sum(Sales))`, pour indiquer la somme des ventes du client `Customer` sur la ligne supérieure.

* `=Sum(Sales)+Top(Sum(Sales))`, pour ajouter la valeur `Sum(Sales)` du client `Customer` en cours à celle du client `Customer` de la ligne supérieure.

* `=Sum(Sales)+Top(Sum(Sales), 3)`, pour ajouter la valeur `Sum(Sales)` du client `Customer` en cours à celle du client `Customer` placé en troisième par rapport à la ligne supérieure.

Tableau de résultats

| Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales), 3) |
| --- | --- | --- | --- | --- |
| Totals | 2566 | 587 | 3153 | 3249 |
| Astrida | 587 | 587 | 1174 | 1270 |
| Betacab | 539 | 587 | 1126 | 1222 |
| Canutilty | 683 | 587 | 1270 | 1366 |
| Divadip | 757 | 587 | 1344 | 1440 |

La mesure `Top(Sum(Sales))` renvoie `587` pour toutes les lignes, car il s'agit de la valeur de la ligne supérieure : `Astrida`.

Pour la mesure `Sum(Sales)+Top(Sum(Sales))`, la ligne `Betacab` renvoie `1126`, qui est le résultat de l'ajout de la valeur `Sum(Sales)` pour `Betacab` et `Astrida`, le client `Customer` sur la ligne supérieure.

Pour la mesure `Sum(Sales)+Top(Sum(Sales), 3)`, l'argument `offset` est défini sur `3`. L'expression ajoute la valeur `Sum(Sales)` pour la ligne en cours et la troisième ligne en partant du haut, `Canutility`. Par exemple, la valeur `1440` est renvoyée pour le client `Divadip`. Il s'agit du résultat de l'addition de la valeur `Sum(Sales)` pour `Divadip` et de la valeur `SumSales` pour `Canutility` (`757`+`683`).

## En savoir plus

* [Bottom - fonction de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - fonction de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - fonction de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Fonction de script et de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Fonctions de plage](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)