weekday - fonction de script et fonction de graphique
Cette fonction renvoie une valeur double avec :
Un nom de jour tel que défini dans la variable d'environnement DayNames.
Un entier compris entre 0 et 6 correspondant au jour nominal de la semaine (0-6).
weekday(date [,first_week_day=0])
double
La fonction weekday() détermine le jour de la semaine d'une date. Elle renvoie ensuite une valeur de chaîne représentant ce jour-là.
Le résultat renvoie la valeur numérique correspondant à ce jour de la semaine (0-6), en fonction du jour de début de la semaine. Par exemple, si le premier jour de la semaine est défini comme étant un dimanche, un mercredi renverra une valeur numérique 3. Ce jour de début est déterminé par la variable système FirstWeekDay ou par le paramètre de fonction first_week_day.
Vous pouvez utiliser cette valeur numérique dans le cadre d'une expression arithmétique. Par exemple, vous pouvez la multiplier par 1 pour renvoyer la valeur elle-même.
Cas d'utilisation
La fonction weekday() est utile lorsque vous souhaitez comparer des agrégations par jour de la semaine. Par exemple, si vous souhaitez comparer les ventes moyennes de produits par jour de la semaine.
Ces dimensions peuvent être créées soit dans le script de chargement, en utilisant la fonction pour créer un champ dans une table Master Calendar, soit directement dans un graphique sous forme de mesure calculée.
Vous pouvez utiliser les valeurs suivantes pour définir le premier jour de la semaine dans l'argument first_week_day :
first_week_day values
Jour
Valeur
Lundi
0
Mardi
1
Mercredi
2
Jeudi
3
Vendredi
4
Samedi
5
Dimanche
6
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.
Note InformationsSauf indication contraire, la valeur FirstWeekDay est définie sur 0 dans ces exemples.
Exemples de fonction
Exemple
Résultat
weekday('10/12/1971')
Renvoie 'Tue' (mardi) et 1.
weekday('10/12/1971' , 6)
Renvoie 'Tue' (mardi) et 2.
Dans cet exemple, le dimanche (6) est de premier jour de la semaine.
SET FirstWeekDay=6;
...
weekday('10/12/1971')
Renvoie 'Tue' (mardi) et 2.
Exemple 1 - chaîne Weekday
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 2022, chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Variable DayNames définie de sorte à utiliser les noms de jour par défaut.
Chargement précédent contenant la fonction weekday(), définie comme le champ ‘week_day’ et qui renvoie le jour de la semaine des transactions.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day
;
Load
*
Inline
[
id,date,amount
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.39
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
Tableau de résultats
id
date
week_day
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Le champ 'week_day' est créé dans l'instruction LOAD précédente via la fonction weekday() et en transmettant le champ date comme argument de la fonction.
La fonction weekday() renvoie la valeur de chaîne weekday, à savoir, le nom du jour de la semaine défini par la variable système DayNames.
La transaction 8192 a eu lieu le 5 janvier. La variable système FirstWeekDay définit le premier jour de la semaine comme étant le dimanche. La transaction de la fonction weekday() a eu lieu un mercredi et renvoie cette valeur, au format abrégé de la variable système DayNames, dans le champ week_day.
Les valeurs du champ ‘week_day’ sont alignées à droite dans la colonne, en raison d'un résultat double contenant du texte et un chiffre pour le champ (Wednesday, 3). Pour convertir la valeur du champ en équivalent numérique, il est possible d'intégrer le champ à la fonction num(). Par exemple, dans la transaction 8192, la valeur Wednesday (mercredi) serait convertie en chiffre 3.
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 :
Ensemble de données contenant un ensemble de transactions pour 2022, chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Variable DayNames définie de sorte à utiliser les noms de jour par défaut.
Chargement précédent contenant la fonction weekday(), définie comme le champ ‘week_day’ et qui renvoie le jour de la semaine des transactions.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date,1) as week_day
;
Load
*
Inline
[
id,date,amount
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.39
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
week_day
Tableau de résultats
id
date
week_day
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Étant donné que l'argument first_week_day égal à 1 est utilisé dans la fonction weekday(), le premier jour de la semaine est le mardi. Par conséquent, toutes les transactions qui ont lieu un mardi auront une valeur numérique double 0.
La transaction 8192 a eu lieu le 5 janvier. La fonction weekday() identifie qu'il s'agit un mercredi ; par conséquent, l'expression renvoie la valeur numérique double 1.
Exemple 3 - 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 :
Ensemble de données contenant un ensemble de transactions pour 2022, chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Variable DayNames définie de sorte à utiliser les noms de jour par défaut.
Cependant, dans cet exemple, l'ensemble de données est le même et chargé dans l'application. Le calcul qui identifie la valeur weekday est créé sous forme de mesure dans un graphique de l'application.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*
Inline
[
id,date,amount
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.39
];
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 valeur weekday, créez la mesure suivante :
=weekday(date)
Tableau de résultats
id
date
=weekday(date)
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Le champ ‘=weekday(date)’ est créé dans le graphique via la fonction weekday() et en transmettant le champ date comme argument de la fonction.
La fonction weekday() renvoie la valeur de chaîne weekday, à savoir, le nom du jour de la semaine défini par la variable système DayNames.
La transaction 8192 a eu lieu le 5 janvier. La variable système FirstWeekDay définit le premier jour de la semaine comme étant le dimanche. La transaction de la fonction weekday() a eu lieu un mercredi et renvoie cette valeur, au format abrégé de la variable système DayNames, dans le champ =weekday(date).
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 2022, chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Variable DayNames définie de sorte à utiliser les noms de jour par défaut.
L'utilisateur final souhaite un graphique présentant les ventes moyennes par jour de la semaine pour les transactions.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
LOAD
RecNo() AS id,
MakeDate(2022, 1, Ceil(Rand() * 31)) as date,
Rand() * 1000 AS amount
Autogenerate(1000);
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
=weekday(date)
=avg(amount)
Définissez le Formatage des nombres des mesures sur Devise.
Tableau de résultats
weekday(date)
Avg(amount)
Sun
$536.96
Mon
$500.80
Tue
$515.63
Wed
$509.21
Thu
$482.70
Fri
$441.33
Sat
$505.22
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 !