# inmonthstodate Fonction de script et de graphique

Cette fonction permet de déterminer si un horodatage tombe dans la partie d'une période (mois, période de deux mois, trimestre, période de quatre mois ou semestre) jusqu'à la dernière milliseconde incluse spécifiée dans `base_date`. Il est également possible de déterminer si l'horodatage se situe dans une période passée ou future.

InMonths (n\_months, timestamp, base\_date, period\_no[, first\_month\_of\_year ])

booléen

Diagramme de la fonction `inmonthstodate`.

Diagramme de la fonction `inmonthstodate`.

Diagramme de la fonction `inmonthstodate`inmonthstodate. ![Diagram showing how inmonthstodate function can be used to identify if a timstamp falls within or outside of a set segment of time.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram1.png)

Arguments

| Argument | Description |
| --- | --- |
| n\_months | Nombre de mois définissant la période. Entier ou expression aboutissant à un entier qui doit correspondre à l'une de ces valeurs : 1 (qui équivaut à la fonction inmonth()), 2 (période de deux mois), 3 (qui équivaut à la fonction inquarter()), 4 (période de quatre mois) ou 6 (semestre). |
| timestamp | Date à comparer à base\_date. |
| base\_date | Date utilisée pour évaluer la période. |
| period\_no | Il est possible de décaler la période à l'aide de l'argument period\_no, d'un entier ou d'une expression aboutissant à un entier, où la valeur 0 indique la période comprenant l'argument base\_date. Les valeurs négatives spécifiées pour period\_no indiquent les périodes passées tandis que les valeurs positives désignent les périodes à venir. |
| first\_month\_of\_year | Si vous voulez utiliser des exercices (financiers) qui ne commencent pas en janvier, indiquez une valeur comprise entre 2 et 12 dans l'argument first\_month\_of\_year. |

Dans la fonction `inmonthstodate()`, la `base_date` joue le rôle de point final du segment d'année donné dont elle fait partie.

Par exemple, si l'année était divisée en segments tertiaires et si la `base_date` était le 15 mai, tout horodatage entre le début du mois de janvier et la fin du mois d'avril renverrait un résultat booléen FALSE. Les dates comprises entre le 1er mai et le 15 mai renverraient TRUE. Le reste de l'année renverrait FALSE.

Diagramme de la plage de résultats booléens de la fonction `inmonthstodate`.

Diagramme de la plage de résultats booléens de la fonction `inmonthstodate`.

Diagramme de la plage de résultats booléens de la fonction `inmonthstodate`inmonthstodate. ![Diagram showing the range of Boolean results of the inmonthstodate function.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Les segments suivants de l'année sont disponibles dans la fonction en tant qu'arguments `n_month`.

`n_month`n\_month arguments

| Période | Nombre de mois |
| --- | --- |
| month | 1 |
| période de deux mois | 2 |
| trimestre | 3 |
| tertile | 4 |
| semestre | 6 |

Cas d'utilisation

La fonction `inmonthstodate()` renvoie un résultat booléen. Généralement, ce type de fonction est utilisé comme condition dans une `if expression`. En utilisant la fonction `inmonthstodate()`, vous pouvez sélectionner la période à évaluer. Par exemple, en fournissant une variable d'entrée qui permet à l'utilisateur d'identifier les produits fabriqués au cours du mois, du trimestre ou du semestre d'une période, jusqu'à une certaine date.

## Paramètres régionaux

Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/DD/YYYY. 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 où 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'Qlik Sense interface utilisateur. Qlik Sense sera affiché dans la même langue que le navigateur que vous utilisez.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `inmonthstodate(4, '01/25/2013', '04/25/2013',<br>0)` | Renvoie True, car la valeur de l'timestamp, 01/25/2013, est comprise dans la période de quatre mois du 01/01/2013 à la fin du 04/25/2013, qui comprend la valeur de la base\_date, 04/25/2013. |
| `inmonthstodate(4, '04/26/2013', '04/25/2006',<br>0)` | Renvoie False, car le 04/26/2013 se trouve hors de la même période que celle indiquée dans l'exemple précédent. |
| `inmonthstodate(4, '09/25/2005', '02/01/2006',<br>-1)` | Renvoie True, car la valeur de l'argument period\_no, -1, décale la période de recherche d'une période de quatre mois en arrière (la valeur de n-months), ce qui définit la période de recherche du 01/09/2005 au 02/01/2006. |
| `inmonthstodate(4, '04/25/2006', '06/01/2006',<br>0, 3)` | Renvoie True, car la valeur de first\_month\_of\_year est configurée sur 3, ce qui définit la période de recherche du 03/01/2006 au 06/01/2006 au lieu du 05/01/2006 au 06/01/2006. |

## Exemple 1 – aucun argument supplémentaire

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

* Un jeu de données contenant un ensemble de transactions pour 2022 qui est chargé dans une table appelée ‘`Transactions`’.

* Un champ date dans la variable système `DateFormat` au format `(MM/DD/YYYY)`.

* Instruction preceding load contenant les éléments suivants :

  * La fonction `inmonthstodate()` définie comme le champ ‘`in_months_to_date`’. Cela détermine les transactions qui ont eu lieu au cours du trimestre jusqu'au 15 mai 2022.

Script de chargement

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Résultats

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

* `date`
* `in_months_to_date`

Table de résultats

| date | in\_months\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Le champ `in_months_to_date` est créé dans l'instruction LOAD précédente via la fonction `inmonthstodate()`.

Le premier argument fourni est `3`, divisant l'année en segments trimestriels. Le deuxième argument identifie le champ en cours d'évaluation. Le troisième argument est une date codée en dur pour le 15 mai, qui est la `base_date` qui définit la limite de fin du segment. Le dernier argument est un argument `period_no` défini sur `0`.

Diagramme de la fonction `inmonthstodate` sans argument supplémentaire.

Diagramme de la fonction `inmonthstodate` sans argument supplémentaire.

Diagramme de la fonction `inmonthstodate`inmonthstodate sans argument supplémentaire. ![Diagram showing the range of transactions that are identified as TRUE by the inmonthstodate function.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Toute transaction qui se produit entre le 1er avril et le 15 mai renvoie un résultat booléen TRUE. Les dates des transactions en dehors de cette période renvoient FALSE.

## Exemple 2 – period\_no

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

#### Script de chargement et résultats

Vue d'ensemble

Le même jeu de données et le même scénario que ceux du premier exemple sont utilisés.

Cependant, dans cet exemple, la tâche consiste à créer un champ, ‘`previous_qtr_to_date`’, qui détermine si les transactions ont eu lieu un trimestre avant le 15 mai.

Script de chargement

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', -1) as previous_qtr_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Résultats

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

* `date`

* `previous_qtr_to_date`

Table de résultats

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Avec l'utilisation de `-1` comme argument `period_no` dans la fonction `inmonthstodate()`, la fonction décale les limites du segment d'année de comparaison d'un trimestre.

Le 15 mai tombe pendant le deuxième trimestre de l'année, et, par conséquent, le segment correspond initialement à la période entre le 1er avril et le 15 mai. L'argument `period_no` décale ce segment de trois mois négatifs. Les limites des dates deviennent du 1er janvier au 15 février.

Diagramme de la fonction `inmonthstodate` avec l'argument period\_no défini sur -1.

Diagramme de la fonction `inmonthstodate` avec l'argument period\_no défini sur -1.

Diagramme de la fonction `inmonthstodate`inmonthstodate avec l'argument period\_no défini sur -1. ![Diagram showing the range of transactions with the period_no argument set to -1.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example2-diagram.png)

Par conséquent, toute transaction effectuée entre le 1er janvier et le 15 février renverra un résultat booléen TRUE.

## Exemple 3 – first\_month\_of\_year

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

#### Script de chargement et résultats

Vue d'ensemble

Le même jeu de données et le même scénario que ceux du premier exemple sont utilisés.

Dans cet exemple, la stratégie organisationnelle exige que mars soit le premier mois de l'exercice financier.

Créez un champ, ‘`in_months_to_date`’, qui détermine les transactions qui ont eu lieu au cours du même trimestre jusqu'au 15 mai 2022.

Script de chargement

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0,3) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Résultats

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

* `date`

* `in_months_to_date`

Table de résultats

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Si on utilise `3` comme argument `first_month_of_year` dans la fonction `inmonthstodate()`, la fonction commence l'année le 1er mars, puis divise l'année en trimestres en fonction du premier argument fourni. Par conséquent, les segments de trimestre sont les suivants :

* Mars-mai

* Juin-août

* Sept-nov

* Déc-févr

La `base_date` du 15 mai segmente ensuite le trimestre mars-mai en fixant sa limite de fin au 15 mai.

Diagramme de la fonction `inmonthstodate` avec mars défini comme le premier mois de l'année.

Diagramme de la fonction `inmonthstodate` avec mars défini comme le premier mois de l'année.

Diagramme de la fonction `inmonthstodate`inmonthstodate avec mars défini comme le premier mois de l'année. ![Diagram showing the range of transactions with the first month of the year set as March.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example3-diagram.png)

Par conséquent, toute transaction qui se produit entre le 1er mars et le 15 mai renverra un résultat booléen TRUE, tandis que les transactions avec des dates en dehors de ces limites renverront une valeur FALSE.

## Exemple 4 – Exemple de graphique

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Le même jeu de données et le même scénario que ceux du premier exemple sont utilisés.

Dans cet exemple, le jeu de données est le même et chargé dans l'application. La tâche consiste à créer un calcul qui détermine si les transactions ont eu lieu pendant le même trimestre que celui du 15 mai sous forme de mesure dans un graphique de l'application.

Script de chargement

```
SET DateFormat='MM/DD/YYYY'; 
						 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Résultats

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

`date`

Pour calculer si des transactions ont eu lieu au cours du même trimestre que celui du 15 mai, créez la mesure suivante :

`=inmonthstodate(3,date,'05/15/2022', 0)`

Table de résultats

| date | =inmonthstodate(3,date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

La mesure ‘`‘in_months_to_date`’ est créée dans le graphique à l'aide de la fonction `inmonthstodate()` .

Le premier argument fourni est `3`, divisant l'année en segments trimestriels. Le deuxième argument identifie le champ en cours d'évaluation. Le troisième argument est une date codée en dur du 15 mai, qui est la `base_date` qui définit la limite de fin du segment. Le dernier argument est un argument `period_no` défini sur `0`.

Diagramme de la fonction `inmonthstodate` avec des segments trimestriels.

Diagramme de la fonction `inmonthstodate` avec des segments trimestriels.

Diagramme de la fonction `inmonthstodate`inmonthstodate avec des segments trimestriels. ![Diagram showing the range of transactions that return a TRUE boolean value.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example4-diagram.png)

Toute transaction qui se produit entre le 1er avril et le 15 mai renverra un résultat booléen TRUE. Les dates des transactions en dehors de ce segment renverront FALSE.

## Exemple 5 – Scénario

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

#### Script de chargement et résultats

Vue d'ensemble

Dans cet exemple, un jeu de données est chargé dans une table nommée 'Sales'. La table contient les champs suivants :

* ID de produit

* Type de produit

* Date de vente

* Prix de vente

L'utilisateur final souhaite un graphique qui affiche, par type de produit, les produits vendus au cours de la période jusqu'au 24 décembre 2022. L'utilisateur souhaite pouvoir définir la longueur de cette période.

Script de chargement

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,sales_date,sales_price 
8188,product A,'9/19/2022',37.23 
8189,product D,'10/27/2022',17.17 
8190,product C,'10/30/2022',88.27 
8191,product B,'10/31/2022',57.42 
8192,product D,'11/16/2022',53.80 
8193,product D,'11/28/2022',82.06 
8194,product A,'12/2/2022',40.39 
8195,product B,'12/5/2022',87.21 
8196,product C,'12/15/2022',95.93 
8197,product B,'12/16/2022',45.89 
8198,product C,'12/19/2022',36.23 
8199,product D,'12/22/2022',25.66 
8200,product D,'12/23/2022',82.77 
8201,product A,'12/24/2022',69.98 
8202,product A,'12/24/2022',76.11 
8203,product B,'12/26/2022',25.12 
8204,product B,'12/27/2022',46.23 
8205,product B,'12/27/2022',84.21 
8206,product C,'12/28/2022',96.24 
8207,product D,'12/29/2022',67.67 
]; 
```

Résultats

Chargez les données et ouvrez une feuille.

Au début du script de chargement, une variable, vPeriod, est créée ; elle est liée au contrôle d'entrée de variable.

Procédez comme suit :

1. Dans le panneau des ressources, cliquez sur Graphiques.

2. Sous Objets de tableau de bord, faites glisser une Entrée de variable sur la feuille.

3. Saisissez un titre pour le graphique.

4. Sous Variable, sélectionnez vPeriod comme nom et définissez l'objet de sorte qu'il s'affiche sous forme de Liste déroulante.

5. Sous Valeurs, cliquez sur les valeurs Dynamiques. Saisissez les éléments suivants :

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

6. Ajoutez une nouvelle table à la feuille.

7. Dans le panneau des propriétés, sous Données, ajoutez product\_type comme dimension.

8. Ajoutez l'expression suivante comme mesure :

   =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0))

9. Définissez le Formatage des nombres des mesures sur Devise.

Table de résultats

| product\_type | =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0)) |
| --- | --- |
| product A | $186.48 |
| product B | $190.52 |
| product C | $220.43 |
| product D | $261.46 |

La fonction inmonthstodate() utilise l'entrée utilisateur comme argument pour définir la taille du segment de début de l'année.

La fonction transmet la date de vente de chacun des produits comme deuxième argument de la fonction inmonthstodate(). Si vous utilisez le 24 décembre comme troisième argument dans la fonction inmonthstodate(), les produits dont les dates de vente tombent pendant la période définie jusqu'au 24 décembre inclus renvoient une valeur booléenne TRUE. La fonction sum additionne les ventes de ces produits.