# Below - fonction de graphique

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

Syntaxe :

Below([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 offset n supérieur à 1, l'évaluation de l'expression est déplacée de n lignes en dessous de la ligne active.<br><br>Si vous spécifiez un décalage égal à 0, l'expression est évaluée sur la ligne active.<br><br>Si vous spécifiez un décalage négatif, la fonction Below aboutit au même résultat que la fonction Above 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 valeurs count, une pour chacune des lignes de table count situées en dessous 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](https://help.qlik.com/fr-FR/cloud-services/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/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Pour la dernière ligne d'un segment de colonne, la fonction renvoie une valeur NULL, puisqu'il n'y a pas de ligne en dessous.

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.

Limitations :

* 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 |
| --- | --- |
| `Below( Sum(Sales) )` | Renvoie la valeur de `Sales` pour la ligne située en dessous de la ligne active. |

## Exemple - Les bases de Below

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

* `=Below(Sum(Sales))`, pour trouver la valeur des ventes de l'année suivante.

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

* `=RangeSum(Below(Sales, 1, 2))`, pour démontrer une agrégation mobile sur deux ans des deux années de ventes suivantes.

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

Tableau de résultats

| Year | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales) - Below(Sum(Sales)) | RangeSum(Below(Sales, 1, 2) | (Sales - Below(Sales)) / Below(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | 1500 | -500 | 2700 | -33.33% |
| 2020 | 1500 | 1200 | 300 | 3000 | 25.00% |
| 2021 | 1200 | 1800 | -600 | 3500 | -33.00% |
| 2022 | 1800 | 1700 | 100 | 1700 | 5.88% |
| 2023 | 1700 | - | - | 0 | - |

En examinant les résultats, vous pouvez comparer les valeurs de `Sales` de la période en cours à celles de la période suivante.

* La mesure `Sum(Sales) - Below(Sum(Sales))` renvoie la variation des valeurs `Sales` en comparant la période en cours à la période suivante.

* La mesure `RangeSum(Below(Sales, 1, 2))` renvoie la somme des deux valeurs `Sales` suivantes.

* La mesure `(Sales - Below(Sales)) / Below(Sales)` renvoie la variation de `Sales` par rapport à la période suivante 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) - Below(Sum(Sales))`, pour renvoyer la variance d'une année sur l'autre.

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

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

Graphique à barres montrant les résultats de la fonction BelowBelow ![Graphique à barres montrant la variance d'une année sur l'autre de la somme des ventes par rapport à l'année suivante](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example.png)

L'utilisation de la fonction `Below` 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 suivante.

## Exemple - Scénario Below

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

  * `SalesYear`

  * `SalesAmount`

Script de chargement

```
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];
```

Résultats

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

* `SalesYear`

Créez les mesures suivantes :

* `=Sum(SalesAmount)`, pour agréger les ventes.

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`, pour calculer la dégradation totale des valeurs de `SalesAmount`.

Tableau de résultats

| SalesYear | Sum(SalesAmount) | RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo())) |
| --- | --- | --- |
| Totals | 3000 | 0 |
| 2019 | 500 | 2400 |
| 2020 | 800 | 1900 |
| 2021 | 400 | 1100 |
| 2022 | 700 | 700 |
| 2023 | 600 | 0 |

Les résultats montrent comment utiliser une combinaison des fonctions `RangeSum` et `Below` pour obtenir le total cumulé de la dégradation des ventes.

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 :

* `SalesYear`

Créez la mesure suivante :

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`, pour renvoyer la dégradation cumulée de la valeur des ventes.

Graphique à barres indiquant la dégradation cumulée de la valeur des ventes par an

Graphique à barres indiquant la dégradation cumulée de la valeur des ventes par an

Graphique à barres indiquant la dégradation cumulée de la valeur des ventes par an ![Graphique à barres indiquant la dégradation cumulée des valeurs des ventes.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example2.png)

L'utilisation de la fonction `Below` en combinaison avec `RangeSum` dans un graphique à barres permet de visualiser la dégradation cumulée des valeurs des ventes.

## Exemple : Expression de graphique utilisant Below

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

* `=Below(Sum(Sales))`, pour indiquer la somme des ventes de la ligne précédente.

* `=Sum(Sales)+Below(Sum(Sales))`, pour additionner la somme de la valeur des ventes et la somme des ventes de la ligne du client en dessous de la ligne active.

* `=Sum(Sales)+Below(Sum(Sales), 3)`, pour additionner la valeur de `Sum(Sales)` pour le client `Customer` actuel et la valeur du client `Customer` qui se trouve trois lignes en dessous.

* `=If(Sum(Sales)>Below(Sum(Sales)), 'Higher')`, pour ajouter l'étiquette `Higher` aux clients dont les résultats `Sum(Sales)` sont supérieurs à la valeur `Sum(Sales)` du client de la ligne en dessous.

Tableau de résultats

| Customer | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales), 3) | If(Sum(Sales)&gt;Below(Sum(Sales)), 'Higher') |
| --- | --- | --- | --- | --- | --- |
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | 539 | 1126 | 1334 | Higher |
| Betacab | 539 | 683 | 1222 | - | - |
| Canutility | 683 | 757 | 1440 | - | - |
| Divadip | 757 | - | - | - | - |

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 Qlik Sense. Qlik Sense é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é dans le panneau des propriétés, sous l'option Tri. Il ne correspond pas nécessairement à l'ordre d'affichage des colonnes dans une table. Pour un exemple d'utilisation de l'ordre de tri, consultez [Exemple - Scénario Above basé sur l'ordre de tri](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm#Example).

La mesure `Below(Sum(Sales))` renvoie NULL pour le client `Divadip`, car il n'existe pas de ligne en dessous. Le résultat pour la ligne `Canutility` indique la valeur de `Sum(Sales)` pour `Divadip`. Le résultat de `Betacab` indique la valeur de `Sum(Sales)` pour `Canutility`, et ainsi de suite.

Pour la mesure `Sum(Sales)+Below(Sum(Sales))`, la ligne de `Astrida` renvoie le résultat de l'addition des valeurs `Sum(Sales)` des lignes `Betacab` + `Astrida` (`539+587`). Le résultat de la ligne `Betacab` affiche le résultat de l'addition des valeurs `Sum(Sales)` de `Canutility` + `Betacab` (`539+683`).

La mesure `Sum(Sales)+Below(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 en dessous 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 en dessous. Les valeurs renvoyées pour les trois dernières lignes `Customer` sont nulles.

La mesure `IF(Sum(Sales)>Below(Sum(Sales)), 'Higher')` renvoie la valeur `Higher` pour le client `Astrida`, car ses résultats de ventes sont supérieurs à la somme des ventes du client de la ligne en dessous, `Betacab`.

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

Note ConseilPour 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 - Utilisation de la fonction Below avec RangeAvg

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

#### Expression de graphique

Vue d'ensemble

La fonction Below peut s'utiliser comme donnée d'entrée dans les fonctions de plage. Cet exemple utilise la fonction dans RangeAvg.

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 la mesure suivante :

* =RangeAvg (Below(Sum(Sales),1,3))

Tableau de résultats

| Customer | RangeAvg (Below(Sum(Sales),1,3)) |
| --- | --- |
| Totals | - |
| Astrida | 660 |
| Betacab | 720 |
| Canutility | 757 |
| Divadip | - |

Dans les arguments de la fonction Below, offset est défini sur 1 et count est défini sur 3. La fonction recherche les résultats de l'expression Sum(Sales) sur les trois lignes situées immédiatement en dessous 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.

## En savoir plus

* [Above - fonction de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Bottom - fonction de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top - fonction de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)