# Bottom - fonction de graphique

La fonction Bottom() évalue une expression au niveau de la dernière ligne (du bas) 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 bas. Pour les autres graphiques que les tables, l'évaluation porte sur la dernière ligne de la colonne active dans l'équivalent du tableau simple du graphique.

Bottom([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 n supérieur à 1, l'évaluation de l'expression est déplacée de n lignes au-dessus de la ligne inférieure.<br><br>Si vous spécifiez un décalage négatif, la fonction Bottom aboutit au même résultat que la fonction Top avec le décalage positif correspondant. |
| count | Si vous spécifiez un troisième paramètre count supérieur à 1, la fonction renvoie non pas une valeur mais une plage de valeurs count, 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 |
| --- | --- |
| `Bottom( Sum(Sales) )` | Renvoie la valeur de `Sales` pour la dernière ligne (celle du bas) d'un segment de colonne dans un tableau. |

## Exemple - Les bases de Bottom

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.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.

* `=Bottom(Sum(Sales))`, pour trouver la valeur des ventes de l'année dernière.

* `=Sum(Sales) - Bottom(Sum(Sales))`, pour calculer la variance entre la valeur `Sales` de l'année en cours et la valeur de l'année dernière.

* `=Sum(Sales)+Bottom(Sum(Sales), 3)`, pour calculer la somme de la valeur des ventes de l'année en cours et la valeur d'il y a trois ans.

* `=(Sales - Bottom(Sales)) / Bottom(Sales)`, pour renvoyer la variation de `Sales` sous forme de ratio/pourcentage par rapport à l'année dernière. 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) | Bottom(Sum(Sales)) | Sum(Sales) - Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales), 3) | (Sales - Bottom(Sales)) / Bottom(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1700 | 5500 | 8400 | - |
| 2019 | 1000 | 1700 | -700 | 2200 | -41.18% |
| 2020 | 1500 | 1700 | -200 | 2700 | -11.76% |
| 2021 | 1200 | 1700 | -500 | 2400 | -29.41% |
| 2022 | 1800 | 1700 | 100 | 3000 | 5.88% |
| 2023 | 1700 | 1700 | 0 | 2900 | 0.00% |

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

* La mesure `Sum(Sales) - Bottom(Sum(Sales))` renvoie la variation des valeurs `Sales` en comparant la période en cours à la période la plus récente.

* La mesure `Sum(Sales)+Bottom(Sum(Sales), 3)` renvoie la somme de `Sales` pour la ligne active et la troisième période la plus récente.

* La mesure `(Sales - Bottom(Sales)) / Bottom(Sales)` renvoie la variation de `Sales` par rapport à la période la plus récente 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) - Bottom(Sum(Sales))`, pour obtenir la variance des ventes entre la période en cours et la période la plus récente.

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

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

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

L'utilisation de la fonction `Bottom` 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 la plus récente.

## Exemple - Scénario Bottom

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.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 (Bottom(Sum(SalesValue),1,3))`, pour renvoyer la moyenne des 3 lignes les plus récentes.

* `=Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3))`, pour calculer la variance entre la ligne active et la moyenne des 3 lignes les plus récentes.

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

Tableau de résultats

| Product | RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 500 | 1800 | 2300 |
| 2019 | 500 | 0 | 500 |
| 2020 | 500 | -200 | 300 |
| 2021 | 500 | -50 | 450 |
| 2022 | 500 | 200 | 700 |
| 2023 | 500 | -150 | 350 |

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

## Exemple : Expression de graphique utilisant Bottom

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.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.

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

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

* `=Sum(Sales)+Bottom(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 inférieure.

Tableau de résultats

| Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales), 3) |
| --- | --- | --- | --- | --- |
| Totals | 2566 | 757 | 3323 | 3105 |
| Astrida | 587 | 757 | 1344 | 1126 |
| Betacab | 539 | 757 | 1296 | 1078 |
| Canutilty | 683 | 757 | 1440 | 1222 |
| Divadip | 757 | 757 | 1514 | 1296 |

La mesure `Bottom(Sum(Sales))` renvoie `757` pour toutes les lignes, car il s'agit de la valeur de la ligne inférieure : `Divadip`.

Pour la mesure `Sum(Sales)+Bottom(Sum(Sales))`, la ligne `Astrida` renvoie `1344`, qui est le résultat de l'ajout de la valeur `Sum(Sales)` pour `Astrida` et `Divadip`, le client `Customer` sur la ligne inférieure.

Pour la mesure `Sum(Sales)+Bottom(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 bas, `Betacab`. Par exemple, la valeur `1126` est renvoyée pour le client `Astrida`. Il s'agit du résultat de l'addition de la valeur `Sum(Sales)` pour `Astrida` et de la valeur `SumSales` pour `Betacab` (`587`+`539`).

## En savoir plus

* [Top - fonction de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)