# weekyear Fonction de script et de graphique

Cette fonction renvoie l'année à laquelle le numéro de semaine appartient suivant les variables d'environnement. Le numéro de la semaine est compris entre 1 et environ 52.

Syntaxe :

weekyear(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

Type de données renvoyé : entier

Arguments

| Argument | Description |
| --- | --- |
| timestamp | Date ou horodatage à évaluer. |
| first\_week\_day | Spécifie le jour où débute la semaine. S'il est omis, c'est la valeur de la variable FirstWeekDay qui est utilisée.<br><br>Les valeurs possibles de first\_week\_day sont 0 pour lundi, 1 pour mardi, 2 pour mercredi, 3 pour jeudi, 4 pour vendredi, 5 pour samedi et 6 pour dimanche.<br><br>Pour plus d'informations sur la variable système, voir [FirstWeekDay](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Si vous ne précisez pas la variable broken\_weeks, la valeur de la variable BrokenWeeks sera utilisée pour définir si les semaines sont interrompues ou non.<br><br>Pour plus d'informations sur la variable système, voir [BrokenWeeks](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm). |
| reference\_day | Si vous ne spécifiez pas reference\_day, la valeur de la variable ReferenceDay sera utilisée pour spécifier le jour du mois de janvier devant être défini comme jour de référence pour définir la semaine 1. Par défaut, les fonctions Qlik Sense utilisent le 4 comme jour de référence. Cela signifie que la semaine 1 doit contenir le 4 janvier ou, en d'autres termes, que la semaine 1 doit toujours comprendre au moins 4 jours en janvier.<br><br>Pour plus d'informations sur la variable système, voir [ReferenceDay](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm). |

La fonction `weekyear()` détermine la semaine d'une année au cours de laquelle tombe une date. Elle renvoie ensuite l'année correspondant à ce numéro de semaine.

Si `BrokenWeeks` est défini sur `0` (false), `weekyear()` renverra la même valeur que `year()`.

Diagramme de la plage de la fonction `weekyear()`

Diagramme de la plage de la fonction `weekyear()`

Diagramme de la plage de la fonction `weekyear()`weekyear() ![Diagramme montrant la plage temporelle évaluée par la fonction weekyear().](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram1.png)

Cependant, si la variable système `BrokenWeeks` est définie de sorte à utiliser des semaines ininterrompues, la semaine 1 ne doit contenir qu'un certain nombre de jours en janvier, suivant la valeur spécifiée dans la variable système `ReferenceDay`.

Par exemple, si une valeur `ReferenceDay` égale à `4` est utilisée, la semaine 1 doit inclure au moins quatre jours en janvier. Il est possible que la semaine 1 inclue des dates en décembre de l'année précédente ou que le dernier numéro de semaine d'une année inclue des dates en janvier de l'année suivante. Dans des situations telles que celle-ci, la fonction `weekyear()` renverra une valeur différente de celle de la fonction `year()`.

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines ininterrompues

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines ininterrompues

Diagramme de la plage de la fonction `weekyear()`weekyear() lors de l'utilisation de semaines ininterrompues ![Diagramme montrant le fonctionnement de la fonction weekyear() avec des semaines ininterrompues.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram2.png)

Cas d'utilisation de weekyear

La fonction `weekyear()` est utile lorsque vous souhaitez comparer des agrégations par année. Par exemple, si vous souhaitez voir les ventes totales de produits par année. La fonction `weekyear()` est préférée à la fonction `year()` lorsque l'utilisateur souhaite maintenir la cohérence avec la variable système `BrokenWeeks` dans l'application.

## 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 |
| --- | --- |
| `weekyear('12/30/1996',0,0,4)` | Renvoie 1997, car la semaine 1 de 1997 commence le 12/30/1996. |
| `weekyear('01/02/1997',0,0,4)` | Renvoie 1997. |
| `weekyear('12/28/1997',0,0,4)` | Renvoie 1997. |
| `weekyear('12/30/1997',0,0,4)` | Renvoie 1998, car la semaine 1 de 1998 commence le 12/29/1997. |
| `weekyear('01/02/1999',0,0,4)` | Renvoie 1998, car la semaine 53 de 1998 se termine le 01/03/1999. |

Rubriques connexes

| Rubrique | Interaction |
| --- | --- |
| [week Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.htm) | Renvoie un entier représentant le numéro de la semaine selon la norme ISO 8601. |
| [year Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Renvoie un entier représentant l'année au cours de laquelle l'expression est interprétée comme une date selon l'interprétation standard des nombres. |

## Exemple 1 - semaines interrompues

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la dernière semaine de 2020 et la première semaine de 2021, chargé dans une table appelée ‘`Transactions`’.

* Variable `BrokenWeeks` définie sur 1.

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

  * Fonction `weekyear()`, définie comme le champ ‘`week_year`’, qui renvoie l'année de réalisation des transactions.

  * Fonction `week()`, définie comme le champ ‘`week`’, qui indique le numéro de semaine de chaque date de transaction.

Script de chargement

```
SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Résultats

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

* `id`
* `date`
* `week`
* `week_year`

Tableau de résultats

| id | date | semaine | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

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

La variable système `BrokenWeeks` est définie sur `1`, ce qui signifie que l'application utilise des semaines interrompues. La semaine 1 commence le 1er janvier.

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines interrompues

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines interrompues

Diagramme de la plage de la fonction `weekyear()`weekyear() lors de l'utilisation de semaines interrompues ![Diagramme montrant que la fonction weekyear() identifie que la transaction 8181 a eu lieu la semaine 1 et renvoie l'année de cette semaine-là, 2021.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

La transaction 8181 a lieu le 2 janvier, qui fait partie de la semaine 1. Par conséquent, elle renvoie une valeur 2021 pour le champ ‘`week_year`’.

## Exemple 2 - semaines ininterrompues

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la dernière semaine de 2020 et la première semaine de 2021, chargé dans une table appelée ‘`Transactions`’.

* Variable `BrokenWeeks` définie sur `0`.

* Chargement précédent contenant les éléments suivants :

  * Fonction `weekyear()`, définie comme le champ ‘`week_year`’, qui renvoie l'année de réalisation des transactions.

  * Fonction `week()`, définie comme le champ ‘`week`’, qui indique le numéro de semaine de chaque date de transaction.

Cependant, dans cet exemple, la stratégie de l'entreprise exige d'utiliser des semaines ininterrompues.

Script de chargement

```
SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Résultats

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

* `id`
* `date`
* `week`
* `week_year`

Tableau de résultats

| id | date | semaine | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 53 | 2020 |
| 8181 | 01/02/2021 | 53 | 2020 |
| 8182 | 01/03/2021 | 1 | 2021 |
| 8183 | 01/04/2021 | 1 | 2021 |
| 8184 | 01/05/2021 | 1 | 2021 |
| 8185 | 01/06/2021 | 1 | 2021 |
| 8186 | 01/07/2021 | 1 | 2021 |

La variable système `BrokenWeeks` est définie sur `0`, ce qui signifie que l'application utilise des semaines ininterrompues. Par conséquent, la semaine 1 ne commence pas obligatoirement le 1er janvier.

La semaine 53 2020 se poursuit jusqu'à la fin du 2 janvier 2021, la semaine 1 2020 commençant quant à elle le dimanche 3 janvier 2021.

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines ininterrompues

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines ininterrompues

Diagramme de la plage de la fonction `weekyear()`weekyear() lors de l'utilisation de semaines ininterrompues ![Diagramme montrant le fonctionnement de la fonction weekyear() avec des semaines ininterrompues et indiquant que la semaine 53 compte des jours en 2020 et en 2021.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-example2-diagram.png)

La transaction 8181 a lieu le 2 janvier, qui fait partie de la semaine 1. Par conséquent, elle renvoie une valeur 2021 pour le champ ‘`week_year`’.

## Exemple 3 - exemple objet graphique

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

Cependant, dans cet exemple, le jeu de données est le même et chargé dans l'application. Le calcul qui renvoie le numéro de semaine de l'année de réalisation des transactions est créé sous forme de mesure dans un graphique de l'application.

Script de chargement

```
SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Résultats

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

* `id`
* `date`

Pour calculer la semaine d'une transaction, créez la mesure suivante :

* `=week(date)`

Pour calculer l'année d'une transaction en fonction du numéro de semaine, créez la mesure suivante :

* `=weekyear(date)`

Tableau de résultats

| id | date | semaine | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

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

La variable système `BrokenWeeks` est définie sur `1`, ce qui signifie que l'application utilise des semaines interrompues. La semaine 1 commence le 1er janvier.

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines interrompues

Diagramme de la plage de la fonction `weekyear()` lors de l'utilisation de semaines interrompues

Diagramme de la plage de la fonction `weekyear()`weekyear() lors de l'utilisation de semaines interrompues ![Diagramme montrant que la fonction weekyear() identifie que la transaction 8181 a eu lieu la semaine 1 et renvoie l'année de cette semaine-là, 2021.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

La transaction 8181 a lieu le 2 janvier, qui fait partie de la semaine 1. Par conséquent, elle renvoie une valeur 2021 pour le champ ‘`week_year`’.

## Exemple 4 - scénario

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la dernière semaine de 2020 et la première semaine de 2021, chargé dans une table appelée ‘`Transactions`’.

* Variable `BrokenWeeks` définie sur `0`. Cela signifie que l'application utilisera des semaines ininterrompues.

* Variable `ReferenceDay` définie sur `2`. Cela signifie que l'année commencera le 2 janvier et contiendra au moins deux jours en janvier.

* Variable `FirstWeekDay` définie sur `1`. Cela signifie que le premier jour de la semaine sera un mardi.

La stratégie de l'entreprise consiste à utiliser des semaines interrompues. L'utilisateur final souhaite un graphique présentant les ventes totales par année. L'application utilise des semaines ininterrompues avec la semaine 1 contenant au moins deux jours en janvier.

Script de chargement

```
SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Résultats

Chargez les données et ouvrez une feuille. Créez un tableau.

Pour calculer l'année d'une transaction en fonction du numéro de semaine, créez la mesure suivante :

* `=weekyear(date)`

Pour calculer les ventes totales, créez la mesure suivante :

* `sum(amount)`

Définissez le Formatage des nombres des mesures sur Money (Devise).

Tableau de résultats

| weekyear(date) | =sum(amount) |
| --- | --- |
| 2020 | 19.42 |
| 2021 | 373.37 |