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.
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.
Pour plus d'informations sur la variable système, voir FirstWeekDay.
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.
Pour plus d'informations sur la variable système, voir BrokenWeeks.
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.
Pour plus d'informations sur la variable système, voir ReferenceDay.
La fonction week() détermine la semaine au cours de laquelle la date tombe et renvoie le numéro de semaine.
Dans Qlik Sense, les paramètres régionaux sont récupérés lorsque l'application est créée, et les paramètres correspondants sont stockés dans le script sous forme de variables d'environnement. Celles-ci sont utilisées pour déterminer le numéro de semaine.
Cela signifie que la plupart des développeurs d'applications européens reçoivent les variables d'environnement suivantes, correspondant à la définition ISO 8601 :
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
Un développeur d'applications nord-américain reçoit souvent les variables d'environnement suivantes :
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
Le premier jour de la semaine est déterminé par la variable système FirstWeekDay. Vous pouvez également modifier le premier jour de la semaine en utilisant l'argument first_week_day dans la fonction week().
Si votre application utilise des semaines interrompues, le décompte des numéros de semaine commence le 1er janvier et se termine le jour précédant la variable système FirstWeekDay, quel que soit le nombre de jours écoulés.
Si votre application utilise des semaines ininterrompues, la semaine 1 peut commencer l'année précédente ou les premiers jours de janvier. Cela dépend de la façon dont vous utilisez les variables d'environnement FirstWeekDay et ReferenceDay.
Cas d'utilisation
La fonction The week() est utile lorsque vous souhaitez comparer des agrégations par semaine. Par exemple, elle peut être utilisée si vous souhaitez voir les ventes totales de produits par semaine. La fonction week() est préférée à la fonction weekname() lorsque l'utilisateur souhaite que le calcul n'utilise pas forcément la variable système BrokenWeeks, FirstWeekDay ou ReferenceDay de l'application.
Par exemple, si vous souhaitez voir les ventes totales de produits par semaine.
Si l'application utilise des semaines ininterrompues, la semaine 1 peut contenir des dates de décembre de l'année précédente ou exclure des dates de janvier de l'année en cours. Si l'application utilise des semaines interrompues, la semaine 1 peut contenir moins de sept jours.
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.
Les exemples ci-dessous supposent :
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Exemples de fonction
Exemple
Résultat
week('12/28/2021')
Renvoie 52.
week(44614)
Renvoie 8, car il s'agit du numéro de série pour le 02/22/2022.
week('01/03/2021')
Renvoie 53.
week('01/03/2021',6)
Renvoie 1.
Exemple 1 – variables système par défaut
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 2021 et les deux premières semaines de 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, week_number, qui renvoie l'année et le numéro de semaine des transactions.
Création d'un champ appelé week_day, montrant la valeur weekday de chaque date de transaction.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
week_number
Tableau de résultats
id
date
week_day
week_number
8183
12/27/2021
Mon
53
8184
12/28/2021
Tue
53
8185
12/29/2021
Wed
53
8186
12/30/2021
Thu
53
8187
12/31/2021
Fri
53
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
2
8190
01/03/2022
Mon
2
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
3
8197
01/10/2022
Mon
3
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
Le champ week_number est créé dans l'instruction preceding load via la fonction week() et en transmettant le champ date comme argument de la fonction.
Aucun autre paramètre n'est transmis à la fonction. Par conséquent, les variables par défaut qui affectent la fonction week() sont les suivantes :
BrokenWeeks : Le comptage des semaines commence le 1er janvier.
FirstWeekDay : Le premier jour de la semaine est un dimanche.
Étant donné que l'application utilise la variable système BrokenWeeks par défaut, la semaine 1 commence le 1er janvier, un samedi.
En raison de la variable système FirstWeekDay par défaut, les semaines commencent un dimanche. Le premier dimanche après le 1er janvier est le 2 janvier, date à laquelle commence la semaine 2.
Exemple 2 – first_week_day
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 :
Création d'un champ, week_number, qui renvoie l'année et le numéro de semaine des transactions.
Création d'un champ appelé week_day, montrant la valeur weekday de chaque date de transaction.
Dans cet exemple, nous voulons déterminer le début de la semaine de travail sur le mardi.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
week_number
Tableau de résultats
id
date
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
53
8185
12/29/2021
Wed
53
8186
12/30/2021
Thu
53
8187
12/31/2021
Fri
53
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
L'application continue à utiliser des semaines interrompues. Cependant, l'argument first_week_day a été défini sur 1 dans la fonction week(). Cela détermine le premier jour de la semaine comme étant un mardi.
L'application utilise la variable système BrokenWeeks par défaut ; par conséquent, la semaine 1 commence le 1er janvier, un samedi.
L'argument first_week_day de la fonction week() détermine le premier jour de la semaine comme étant un mardi. Par conséquent, la semaine 53 commence le 28 décembre 2021.
Cependant, étant donné que la fonction continue à utiliser des semaines interrompues, la semaine 1 ne dure que deux jours, car le premier mardi après le 1er janvier tombe le 3 janvier.
Exemple 3 – unbroken_weeks
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 ensemble de données et le même scénario que ceux du premier exemple.
Dans cet exemple, nous utilisons des semaines ininterrompues.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
week_number
Tableau de résultats
id
date
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
52
8185
12/29/2021
Wed
52
8186
12/30/2021
Thu
52
8187
12/31/2021
Fri
52
8188
01/01/2022
Sat
52
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
1
8192
01/05/2022
Wed
1
8193
01/06/2022
Thu
1
8194
01/07/2022
Fri
1
8195
01/08/2022
Sat
1
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
2
8199
01/12/2022
Wed
2
8200
01/13/2022
Thu
2
8201
01/14/2022
Fri
2
Le paramètre first_week_date est défini sur 1, faisant du mardi le premier jour de la semaine. Le paramètre broken_weeks est défini sur 0, obligeant la fonction à utiliser des semaines ininterrompues. Pour finir, le troisième paramètre définit la valeur reference_day sur 2.
Le paramètre first_week_date est défini sur 6, faisant du dimanche le premier jour de la semaine. Le paramètre broken_weeks est défini sur 0, obligeant la fonction à utiliser des semaines ininterrompues.
Si on utilise des semaines ininterrompues, la semaine 1 ne commence pas forcément le 1er janvier ; en revanche, elle doit compter au moins quatre jours. Par conséquent, dans l'ensemble de données, la semaine 52 se termine le samedi 1er janvier 2022. La semaine 1 commence donc le jour de la variable système FirstWeekDay, à savoir, le dimanche 2 janvier. Cette semaine se termine le samedi suivant, le 8 janvier.
Exemple 4 – reference_day
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 :
Même ensemble de données et même scénario que ceux du troisième exemple.
Création d'un champ, week_number, qui renvoie l'année et le numéro de semaine des transactions.
Création d'un champ appelé week_day, montrant la valeur weekday de chaque date de transaction.
En outre, les conditions suivantes doivent être remplies :
La semaine de travail commence un mardi.
L'entreprise utilise des semaines ininterrompues.
La valeur reference_day est égale à 2. En d'autres termes, le nombre minimal de jours en janvier la semaine 1 est de 2.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
week_number
Tableau de résultats
id
date
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
1
8185
12/29/2021
Wed
1
8186
12/30/2021
Thu
1
8187
12/31/2021
Fri
1
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
Le paramètre first_week_date est défini sur 1, faisant du mardi le premier jour de la semaine. Le paramètre broken_weeks est défini sur 0, obligeant la fonction à utiliser des semaines ininterrompues. Pour finir, le troisième paramètre définit le paramètre reference_day sur 2.
Étant donné que la fonction utilise des semaines ininterrompues et qu'une valeur reference_day égale à 2 est utilisée comme paramètre, la semaine 1 n'a besoin d'inclure que deux jours en janvier. Le premier jour de la semaine étant un mardi, la semaine 1 commence le 28 décembre 2021 et se termine le lundi 3 janvier 2022.
Exemple 5 – exemple objet 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 ensemble de données et le même scénario que ceux du premier exemple.
Cependant, dans cet exemple, le même ensemble de données est chargé dans l'application. Le calcul qui renvoie le numéro de semaine est créé sous forme de mesure dans un objet graphique.
Chargez les données et ouvrez une feuille. Créez un tableau.
Ajoutez les champs suivants comme dimensions :
id
date
Ensuite, créez la mesure suivante :
=week (date)
Créez une mesure , week_day pour indiquer la valeur weekday de chaque date de transaction :
=weekday(date)
Tableau de résultats
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Mon
8184
12/28/2021
53
Tue
8185
12/29/2021
53
Wed
8186
12/30/2021
53
Thu
8187
12/31/2021
53
Fri
8188
01/01/2022
1
Sat
8189
01/02/2022
2
Sun
8190
01/03/2022
2
Mon
8191
01/04/2022
2
Tue
8192
01/05/2022
2
Wed
8193
01/06/2022
2
Thu
8194
01/07/2022
2
Fri
8195
01/08/2022
2
Sat
8196
01/09/2022
3
Sun
8197
01/10/2022
3
Mon
8198
01/11/2022
3
Tue
8199
01/12/2022
3
Wed
8200
01/13/2022
3
Thu
8201
01/14/2022
3
Fri
Le champ week_number est créé dans l'instruction preceding load via la fonction week() et en transmettant le champ date comme argument de la fonction.
Aucun autre paramètre n'est transmis à la fonction. Par conséquent, les variables par défaut qui affectent la fonction week() sont les suivantes :
BrokenWeeks : Le comptage des semaines commence le 1er janvier.
FirstWeekDay : Le premier jour de la semaine est un dimanche.
Étant donné que l'application utilise la variable système BrokenWeeks par défaut, la semaine 1 commence le 1er janvier, un samedi.
En raison de la variable système FirstWeekDay par défaut, les semaines commencent un dimanche. Le premier dimanche après le 1er janvier est le 2 janvier, date à laquelle commence la semaine 2.
Exemple 6 – 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 2019 et les deux premières semaines de 2020, chargé dans une table appelée Transactions.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
L'application utilise principalement des semaines interrompues sur son tableau de bord. Cependant, l'utilisateur final souhaite un objet graphique présentant les ventes totales par semaine via des semaines ininterrompues. Le jour de référence doit être le 2 janvier, avec des semaines commençant un mardi. Cela est possible même lorsque cette dimension n'est pas disponible dans le modèle de données, en utilisant la fonction week() comme dimension calculée dans le graphique.
Chargez les données et ouvrez une feuille. Créez un tableau.
Créez la dimension calculée suivante :
=week(date)
Ensuite, créez la mesure d'agrégation suivante :
=sum(amount)
Définissez le Formatage des nombres des mesures sur Devise.
Sélectionnez le menu Tri et, pour la dimension calculée, supprimez le tri personnalisé.
Désélectionnez les options Trier par nombre et Trier par ordre alphabétique.
Tableau de résultats
week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
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 !