# addmonths - fonction de script et fonction de graphique

Cette fonction renvoie la date correspondant à n mois après la date startdate ou, si n est une valeur négative, la date correspondant à n mois avant la date startdate.

AddMonths(startdate, n , [ , mode])

double

La fonction `addmonths()` ajoute ou soustrait un nombre défini de mois, `n`, d'une `startdate`, et renvoie la date obtenue.

L'argument `mode` aura un impact sur les valeurs `startdate` le 28 du mois ou après. Si l'argument `mode` est défini sur 1, la fonction `addmonths()` renvoie une date égale en distance relative à la fin du mois comme `startdate`.

Exemple de diagramme de la fonction `addmonths()`

Exemple de diagramme de la fonction `addmonths()`

Exemple de diagramme de la fonction `addmonths()`addmonths() ![Exemple de diagramme montrant comment les différents composants de la fonction addmonths convergent pour produire une date de sortie.](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Par exemple, le 28 février est le dernier mois du mois. Si la fonction `addmonths()`, avec un `mode` égal à 1, est utilisée pour renvoyer la date deux mois plus tard, la fonction renverra la dernière date d'avril, le 30 avril.

Exemple de diagramme de la fonction `addmonths()`, avec `mode=1`

Exemple de diagramme de la fonction `addmonths()`, avec `mode=1`

Exemple de diagramme de la fonction `addmonths()`addmonths(), avec `mode=1`mode=1 ![Exemple de diagramme montrant comment l'argument 'mode' peut être altéré pour modifier la date de sortie de la fonction addmonths.](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Arguments

| Argument | Description |
| --- | --- |
| startdate | Date de début sous forme d'horodatage, par exemple '2012-10-12'. |
| n | Nombre de mois sous forme d'entier positif ou négatif. |
| mode | Indique si le mois est ajouté par rapport au début ou à la fin du mois. Le mode par défaut est 0 pour les ajouts par rapport au début du mois. Définissez le mode sur 1 pour les ajouts par rapport à la fin du mois. Lorsque le mode est défini sur 1 et que la date d'entrée est le 28 ou un jour ultérieur, la fonction vérifie le nombre de jours restants jusqu'à la fin du mois par rapport à la date de début. Le nombre de jours restants jusqu'à la fin du mois est défini dans la date renvoyée. |

## Cas d'utilisation

La fonction `addmonths()` sera couramment utilisée dans une expression pour trouver une date tombant un nombre de mois donné avant ou après une période.

Par exemple, la fonction `addmonths()` peut être utilisée pour identifier la date de fin de contrats de téléphone portable.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Renvoie '04/29/2003'. |
| `addmonths ('01/29/2003',3,0)` | Renvoie '04/29/2003'. |
| `addmonths ('01/29/2003',3,1)` | Renvoie '04/28/2003'. |
| `addmonths ('01/29/2003',1,0)` | Renvoie '02/28/2003'. |
| `addmonths ('01/29/2003',1,1)` | Renvoie '02/26/2003'. |
| `addmonths ('02/28/2003',1,0)` | Renvoie '03/28/2003'. |
| `addmonths ('02/28/2003',1,1)` | Renvoie '03/31/2003'. |
| `addmonths ('01/29/2003',-3)` | Renvoie '10/29/2002'. |

## Paramètres régionaux

Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction `SET DateFormat` de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples.

Les paramètres régionaux par défaut des applications sont basés sur les paramètres système régionaux de l'ordinateur ou du serveur sur lequel Qlik Sense est installé. Si le serveur Qlik Sense auquel vous accédez est configuré sur la Suède, l'éditeur de chargement de données utilisera les paramètres régionaux suédois pour les dates, l'heure et la devise. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Sense. Qlik Sense sera affiché dans la même langue que celle du navigateur que vous utilisez.

## Exemple 1 – aucun argument supplémentaire

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### Script de chargement et résultats

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 contenant un ensemble de transactions entre 2020 et 2022, chargé dans une table appelée `Transactions`.

* Champ de date fourni dans la variable système `DateFormat` au format (MM/DD/YYYY).

* Création d'un champ, `two_months_later`, qui renvoie la date tombant deux mois après la transaction.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addmonths(date,2) as two_months_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `date`

* `two_months_later`

Tableau de résultats

| date | two\_months\_later |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Le champ `two_months_later` est créé dans l'instruction preceding load à l'aide de la fonction `addmonths()`. Le premier argument fourni identifie la date en cours d'évaluation. Le deuxième argument est le nombre de mois à ajouter à ou à soustraire de la `startdate`. Dans cet exemple, la valeur 2 est fournie.

Diagramme de la fonction `addmonths()`, exemple sans argument supplémentaire

Diagramme de la fonction `addmonths()`, exemple sans argument supplémentaire

Diagramme de la fonction `addmonths()`addmonths(), exemple sans argument supplémentaire![Diagramme de la fonction addmonths montrant comment la transaction 8193 du script de chargement est couvertie d'une date d'entrée en une date de sortie obtenue.](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

La transaction 8193 a eu lieu le 14 août. Par conséquent, la fonction `addmonths()` renvoie le 14 octobre 2020 pour le champ `two_months_later`.

## Exemple 2 – fin de mois relative

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### Script de chargement et résultats

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 contenant un ensemble de transactions month-end en 2022, chargé dans une table appelée `Transactions`.

* Champ de date fourni dans la variable système `DateFormat` au format (MM/DD/YYYY).

* Création d'un champ, `relative_two_months_prior`, qui renvoie la date month-end relative tombant deux mois avant la transaction.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addmonths(date,-2,1) as relative_two_months_prior
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/28/2022',37.23
8189,'01/31/2022',57.54
8190,'02/28/2022',17.17
8191,'04/29/2022',88.27
8192,'04/30/2022',57.42
8193,'05/31/2022',53.80
8194,'08/14/2022',82.06
8195,'10/07/2022',40.39
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `date`

* `relative_two_months_prior`

Tableau de résultats

| date | relative\_two\_months\_prior |
| --- | --- |
| 01/28/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 02/27/2022 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 10/07/2022 | 08/07/2022 |

Le champ `relative_two_months_prior` est créé dans l'instruction preceding load à l'aide de la fonction `addmonths()`. Le premier argument fourni identifie la date en cours d'évaluation. Le deuxième argument est le nombre de mois à ajouter à ou à soustraire de la `startdate`. Dans cet exemple, la valeur -2 est fournie. L'argument final est le mode, d'une valeur 1, qui force la fonction à calculer la date month-end relative pour toutes les dates ultérieures ou égales au 28.

Diagramme de la fonction `addmonths()`, exemple avec `  n=-2 `

Diagramme de la fonction `addmonths()`, exemple avec `  n=-2 `

Diagramme de la fonction `addmonths()`addmonths(), exemple avec `  n=-2 ` n=-2![Diagramme de la fonction addmonths montrant comment la transaction 8191 du script de chargement est couvertie d'une date d'entrée en une date de sortie obtenue.](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

La transaction 8191 a lieu le 29 avril 2022. Initialement, deux mois avant, cela correspondrait au mois de février. Ensuite, du fait que le troisième argument de la fonction définit le mode sur 1 et que la valeur day est ultérieure au 27, la fonction calcule la valeur month-end relative. La fonction identifie que le 29 est l'avant-dernier jour d'avril et renvoie par conséquent l'avant-dernier jour de février, le 27.

## Exemple 3 – exemple objet graphique

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### Script de chargement et expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.

Le script de chargement contient le même jeu de données et le même scénario que ceux du premier exemple.

Cependant, dans cet exemple, le même jeu de données est chargé dans l'application. Le calcul qui renvoie la date tombant deux mois après la transaction est créé comme mesure dans un objet graphique.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Résultats

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

Créez la mesure suivante :

`=addmonths(date,2)`

Tableau des résultats

| date | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

La mesure `two_months_later` est créée dans l'objet graphique à l'aide de la fonction `addmonths()`. Le premier argument fourni identifie la date en cours d'évaluation. Le deuxième argument est le nombre de mois à ajouter à ou à soustraire de la `startdate`. Dans cet exemple, la valeur 2 est fournie.

Diagramme de la fonction `addmonths()`, exemple objet graphique

Diagramme de la fonction `addmonths()`, exemple objet graphique

Diagramme de la fonction `addmonths()`addmonths(), exemple objet graphique![Diagramme de la fonction addmonths montrant comment la transaction 8193 du script de chargement est convertie d'une date d'entrée en une date de sortie obtenue.](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

La transaction 8193 a eu lieu le 14 août. Par conséquent, la fonction `addmonths()` renvoie le 14 octobre 2020 pour le champ `two_months_later`.

## Exemple 4 – scénario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### Script de chargement et 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 appelée Mobile\_Plans.

* Informations avec l'ID de contrat, la date de début, la durée du contrat et les frais mensuels.

L'utilisateur final souhaite un objet graphique qui affiche, par ID de contrat, la date de fin de chaque contrat téléphonique.

Script de chargement

```
Mobile_Plans:
Load
*
Inline 
[
contract_id,start_date,contract_length,monthly_fee
8188,'01/13/2020',18,37.23
8189,'02/26/2020',24,17.17
8190,'03/27/2020',36,88.27
8191,'04/16/2020',24,57.42
8192,'05/21/2020',24,53.80
8193,'08/14/2020',12,82.06
8194,'10/07/2020',18,40.39
8195,'12/05/2020',12,87.21
8196,'01/22/2021',12,95.93
8197,'02/03/2021',18,45.89
8198,'03/17/2021',24,36.23
8199,'04/23/2021',24,25.66
8200,'05/04/2021',12,82.77
8201,'06/30/2021',12,69.98
8202,'07/26/2021',12,76.11
8203,'12/27/2021',36,25.12
8204,'06/06/2022',24,46.23
8205,'07/18/2022',12,84.21
8206,'11/14/2022',12,96.24
8207,'12/12/2022',18,67.67
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* contract\_id

* start\_date

* contract\_length

Pour calculer la date de fin de chaque contrat, créez la mesure suivante :

=addmonths(start\_date,contract\_length, 0)

Tableau de résultats

| contract\_id | start\_date | contract\_length | =addmonths(start\_date,contract\_length,0) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 18 | 07/13/2021 |
| 8189 | 02/26/2020 | 24 | 02/26/2022 |
| 8190 | 03/27/2020 | 36 | 03/27/2023 |
| 8191 | 04/16/2020 | 24 | 04/16/2022 |
| 8192 | 05/21/2020 | 24 | 05/21/2022 |
| 8193 | 08/14/2020 | 12 | 08/14/2021 |
| 8194 | 10/07/2020 | 18 | 04/07/2022 |
| 8195 | 12/05/2020 | 12 | 12/05/2021 |
| 8196 | 01/22/2021 | 12 | 01/22/2022 |
| 8197 | 02/03/2021 | 18 | 08/03/2022 |
| 8198 | 03/17/2021 | 24 | 03/17/2023 |
| 8199 | 04/23/2021 | 24 | 04/23/2023 |
| 8200 | 05/04/2021 | 12 | 05/04/2022 |
| 8201 | 06/30/2021 | 12 | 06/30/2022 |
| 8202 | 07/26/2021 | 12 | 07/26/2022 |
| 8203 | 12/27/2021 | 36 | 12/27/2024 |
| 8204 | 06/06/2022 | 24 | 06/06/2024 |
| 8205 | 07/18/2022 | 12 | 07/18/2023 |
| 8206 | 11/14/2022 | 12 | 11/14/2023 |
| 8207 | 12/12/2022 | 18 | 06/12/2024 |