weekyear - fonction de script et fonction de graphique
Cette fonction renvoie l'année à laquelle le numéro de semaine appartient selon la norme ISO 8601. Le numéro de la semaine est compris entre 1 et environ 52.
weekyear(expression)
entier
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.
Par défaut, les applications Qlik utilisent des semaines interrompues (définies par la variable système BrokenWeeks) et le numéro de semaine 1 commence le 1er janvier et l'année se termine à la fin de la semaine 52. Par conséquent, la fonction weekyear() renverra toujours la même valeur que la fonction week() lorsque l'application utilise des semaines interrompues.
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().
Cas d'utilisation
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/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.
Exemples de fonction
Exemple
Résultat
weekyear('12/30/1996')
Renvoie 1997, car la semaine 1 de 1997 commence le 12/30/1996.
weekyear('01/02/1997')
Renvoie 1997.
weekyear('12/28/1997')
Renvoie 1997.
weekyear('12/30/1997')
Renvoie 1998, car la semaine 1 de 1998 commence le 12/29/1997.
weekyear('01/02/1999')
Renvoie 1998, car la semaine 53 de 1998 se termine le 01/03/1999.
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
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 :
Ensemble 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.
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.
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
week
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 LOAD précédente 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.
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
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 :
Ensemble 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
week
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.
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
Vue d'ensemble
Le même ensemble de données et le même scénario que ceux du premier exemple sont utilisés.
Cependant, dans cet exemple, l'ensemble 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.
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
week
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 LOAD précédente 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.
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
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 :
Ensemble 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
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !