# monthend Fonction de script et de graphique

Cette fonction renvoie une valeur correspondant à un horodatage de la dernière milliseconde du dernier jour du mois contenant l'argument `date`. Le format de sortie par défaut correspond à l'argument `DateFormat` défini dans le script.

Syntaxe :

MonthEnd(date[, period\_no])

En d'autres termes, la fonction `monthend()` détermine le mois au cours duquel tombe la date. Elle renvoie ensuite un horodatage, au format date, pour la dernière milliseconde de ce mois-là.

Diagramme de la fonction `monthend`.

Diagramme de la fonction `monthend`.

Diagramme de la fonction `monthend`monthend. ![Diagramme montrant comment utiliser la fonction monthend pour identifier le dernier horodatage d'un mois sélectionné.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-diagram1.png)

Cas d'utilisation de monthend

La fonction `monthend()` est utilisée dans le cadre d'une expression lorsque vous souhaitez que le calcul utilise la fraction du mois qui n'a pas encore eu lieu. Par exemple, si vous souhaitez calculer le total des intérêts non encore encourus au cours du mois.

Type de données renvoyé : double

Arguments

| Argument | Description |
| --- | --- |
| date | Date ou horodatage à évaluer. |
| period\_no | period\_no est un entier qui, s'il est égal à 0 ou s'il est omis, indique le mois contenant la date. Les valeurs négatives spécifiées pour period\_no indiquent les mois passés tandis que les valeurs positives désignent les mois à venir. |

## 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. Pour plus d'informations, consultez [Modification des paramètres régionaux des applications et des scripts](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Les paramètres régionaux par défaut des applications sont basés sur le profil utilisateur. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Cloud. Qlik Cloud sera affiché dans la même langue que celle du navigateur que vous utilisez.

Si vous êtes un créateur d'applications, vous pouvez définir la région par défaut des applications que vous créez. Pour plus d'informations, consultez [Sélection des paramètres régionaux de votre choix pour la création d'applications et de scripts dans Qlik Cloud Analytics](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `monthend('02/19/2012')` | Renvoie 02/29/2012 23:59:59. |
| `monthend('02/19/2001', -1)` | Renvoie 01/31/2001 23:59:59. |

## Exemple 1 – exemple de base

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 pour 2022, chargé dans une table appelée ‘`Transactions`’.

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

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

  * La fonction `monthend()` définie comme le champ ‘`end_of_month`’.

  * La fonction `timestamp` définie comme le champ ‘`end_of_month_timestamp`’.

Script de chargement

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

Transactions: 
    Load 
    *, 
    monthend(date) as end_of_month, 
    timestamp(monthend(date)) as end_of_month_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
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 :

* `id`
* `date`
* `end_of_month`
* `end_of_month_timestamp`

Tableau de résultats

| id | date | end\_of\_month | end\_of\_month\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

Le champ '`end_of_month`' est créé dans l'instruction preceding load via la fonction `monthend()` et en transmettant le champ date comme argument de la fonction.

La fonction `monthend()` identifie le mois dans lequel tombe la valeur date en renvoyant un horodatage pour la dernière milliseconde de ce mois.

Diagramme de la fonction `monthend` avec March (mars) comme le mois sélectionné.

Diagramme de la fonction `monthend` avec March (mars) comme le mois sélectionné.

Diagramme de la fonction `monthend`monthend avec March (mars) comme le mois sélectionné. ![Diagramme montrant comment utiliser la fonction monthend pour identifier le dernier horodatage d'un mois sélectionné.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example1-diagram.png)

La transaction 8192 a eu lieu le 16 mars. La fonction `monthend()` renvoie la dernière milliseconde de ce mois, soit le 31 mars à 11:59:59 PM.

## Exemple 2 – period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 tâche consiste à créer un champ, ‘`previous_month_end`’, qui renvoie l'horodatage de la fin du mois avant la réalisation de la transaction.

Script de chargement

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthend(date,-1) as previous_month_end, 
    timestamp(monthend(date,-1)) as previous_month_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
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 :

* `id`
* `date`
* `previous_month_end`
* `previous_month_end_timestamp`

Tableau de résultats

| id | date | previous\_month\_end | previous\_month\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8189 | 1/19/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8190 | 2/5/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |

La fonction `monthend()` commence par identifier le mois au cours duquel les transactions ont lieu, avec un argument `period_no` défini sur `-1` utilisé comme argument de décalage. Elle décale ensuite d'un mois en arrière et identifie la dernière milliseconde de ce mois-là.

Diagramme de la fonction `monthend` avec la variable period\_no.

Diagramme de la fonction `monthend` avec la variable period\_no.

Diagramme de la fonction `monthend`monthend avec la variable period\_no. ![Diagramme montrant comment utiliser la fonction monthend avec la variable period_no pour identifier le dernier horodatage du mois avant celui défini dans la fonction monthend().](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example2-diagram.png)

La transaction 8192 a eu lieu le 16 mars. La fonction `monthend()` identifie que le mois avant la transaction était le mois de février. Elle renvoie alors la dernière milliseconde de ce mois, le 28 février à 11:59:59 PM.

## Exemple 3 - exemple graphique

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 renvoie un horodatage correspondant à la fin du mois de réalisation des transactions sous forme de mesure dans un graphique de l'application.

Script de chargement

```
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
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`

* `id`

Pour calculer la date de fin du mois d'une transaction, créez les mesures suivantes :

* `=monthend(date)`
* `=timestamp(monthend(date))`

Tableau de résultats

| id | date | =monthend(date) | =timestamp(monthend(date)) |
| --- | --- | --- | --- |
| 8188 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8189 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8190 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8191 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8192 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8193 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8194 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8195 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8196 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8197 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8198 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8201 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8202 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8203 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8204 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8205 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8206 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8207 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |

La mesure ‘`end_of_month`’ est créée dans le graphique via la fonction `monthend()` et en transmettant le champ date comme argument de la fonction.

La fonction `monthend()` identifie le mois dans lequel tombe la valeur date et renvoie un horodatage pour la dernière milliseconde de ce mois.

Diagramme de la fonction `monthend` avec la variable period\_no.

Diagramme de la fonction `monthend` avec la variable period\_no.

Diagramme de la fonction `monthend`monthend avec la variable period\_no. ![](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example3-diagram.png)

La transaction 8192 a eu lieu le 16 mars. La fonction `monthend()` renvoie la dernière milliseconde de ce mois, soit le 31 mars à 11:59:59 PM.

## Exemple 4 – scénario

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 '`Employee_Expenses`'. La table contient les champs suivants :

* ID des employés

* Nom des employés

* Notes de frais quotidiennes moyennes de chaque employé

L'utilisateur final souhaite un graphique qui affiche, par ID d'employé et nom d'employé, les notes de frais estimées pour le reste du mois.

Script de chargement

```
Employee_Expenses: 
Load 
* 
Inline  
[ 
employee_id,employee_name,avg_daily_claim 
182,Mark, $15 
183,Deryck, $12.5  
184,Dexter, $12.5 
185,Sydney,$27 
186,Agatha,$18 
]; 
```

Résultats

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

* `employee_id`
* `employee_name`

Pour calculer les intérêts accumulés, créez la mesure suivante :

`=floor(monthend(today(1),0)-today(1))*avg_daily_claim`

Note InformationsCette mesure est dynamique est produira des résultats de table différents suivant la date de chargement des données.

Définissez le Formatage des nombres de la mesure sur Money (Devise).

Tableau de résultats

| employee\_id | employee\_name | =floor(monthend(today(1),0)-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $30.00 |
| 183 | Deryck | $25.00 |
| 184 | Dexter | $25.00 |
| 185 | Sydney | $54.00 |
| 186 | Agatha | $36.00 |

La fonction `monthend()` renvoie la date de fin du mois en cours en utilisant la date d'aujourd'hui comme seul argument. L'expression renvoie le nombre de jours restants pour ce mois en soustrayant la date d'aujourd'hui de la date de fin du mois.

Cette valeur est ensuite multipliée par les notes de frais quotidiennes moyennes par employé pour calculer la valeur estimée des notes de frais que chaque employé est censé faire au cours du mois restant.