La fonction makeweekdate() est disponible comme fonction de script et de graphique. La fonction calculera la date en fonction des paramètres transmis dans la fonction.
Arguments
Argument
Description
weekyear
Année telle que définie par la fonction WeekYear() pour la date spécifique, à savoir, l'année à laquelle appartient le numéro de semaine.
Note InformationsL'année constituée de semaines peut, dans certains cas, être différente de l'année dite calendaire, par exemple, si la semaine 1 commence au mois de décembre de l'année précédente.
week
Numéro de semaine tel que défini par la fonction Week() pour la date spécifique.
Si aucun numéro de semaine n'est spécifié, le numéro 1 est utilisé.
weekday
Jour de la semaine tel que défini par la fonction WeekDay() pour la date en question. 0 est le premier jour de la semaine et 6 le dernier.
Si aucun jour de la semaine n'est spécifié, 0 est utilisé.
Note InformationsMême si 0 indique toujours le premier jour de la semaine et 6 le dernier, les jours de la semaine auxquels ces numéros correspondent sont déterminés par le paramètre first_week_day. S'il est omis, c'est la valeur de la variableFirstWeekDay qui est utilisée.
En cas d'utilisation de semaine interrompues, avec une combinaison de paramètres impossible, le résultat peut ne pas faire partie de l'année sélectionnée.
MakeWeekDate(2021,1,0,6,1)
Renvoie ‘Dec 27 2020’, car ce jour-là est le premier jour (le dimanche) de la semaine spécifiée. Jan 1 2021 était un vendredi.
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.
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 est 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 précisez pas la variable reference_day, la valeur de la variable ReferenceDay est utilisée pour spécifier le jour du mois de janvier à définir comme jour de référence pour déterminer la semaine 1.
Pour plus d'informations sur la variable système, voir ReferenceDay.
Cas d'utilisation
La fonction makeweekdate() est généralement utilisée dans le script pour la génération de données afin de produire une liste de dates, ou pour créer des dates lorsque l'année, la semaine et le jour de la semaine sont fournis dans les données d'entrée.
Les exemples suivants supposent :
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Exemples de fonction
Exemple
Résultat
makeweekdate(2014,6,6)
renvoie 02/09/2014
makeweekdate(2014,6,1)
renvoie 02/04/2014
makeweekdate(2014,6)
renvoie 02/03/2014 (en supposant l'utilisation du jour de la semaine 0).
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. Pour plus d'informations, voir Modification des paramètres régionaux des applications et des scripts.
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.
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 le total des ventes hebdomadaires pour l'année 2022 dans une table appelée Sales.
Dates de transaction fournies sur trois champs : year, week et sales.
Instruction preceding load, utilisée pour créer une mesure, end_of_week, via la fonction makeweekdate(), pour renvoyer la date du vendredi de cette semaine-là au format MM/DD/YYYY.
Pour prouver que la date renvoyée est un vendredi, l'expression end_of_week est également imbriquée dans la fonction weekday() pour afficher le jour de la semaine.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
transaction_year
transaction_week
end_of_week
week_day
Tableau de résultats
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
Le champend_of_week est créé dans l'instruction preceding load à l'aide de la fonction makeweekdate(). Les champs transaction_year et transaction_week sont transmis via la fonction comme arguments year (année) et week (semaine). Une valeur 4 est utilisée pour l'argument day (jour).
La fonction combine ensuite ces valeurs et les convertit en un champ date, renvoyant les résultats au format de la variable système DateFormat.
La fonction makeweekdate() et ses arguments sont également imbriqués dans une fonction weekday() pour renvoyer le champ week_day ; et, comme indiqué dans le tableau ci-dessus, le champ week_day montre que ces dates ont lieu un vendredi.
Exemple 2 – jour exclu
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 les totaux des ventes hebdomadaires pour l'année 2022 dans une table appelée Sales.
Dates de transaction fournies sur trois champs : year, week et sales.
Chargement précédent utilisé pour créer une mesure, first_day_of_week, via la fonction makeweekdate(). Cela renverra la date du lundi de cette semaine-là au format MM/DD/YYYY.
Pour prouver que la date renvoyée est un lundi, l'expression first_day_of_week est également imbriquée dans la fonction weekday() pour afficher le jour de la semaine.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
transaction_year
transaction_week
first_day_of_week
week_day
Tableau de résultats
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mon
2022
02
01/10/2022
Mon
2022
03
01/17/2022
Mon
2022
04
01/24/2022
Mon
2022
05
01/31/2022
Mon
2022
06
02/07/2022
Mon
2022
07
02/14/2022
Mon
Le champ first_day_of_week est créé dans l'instruction preceding load à l'aide de la fonction makeweekdate(). Les paramètres transaction_year et transaction_week sont transmis comme arguments de la fonction et le paramètre day (jour) est laissé vide.
La fonction combine ensuite ces valeurs et les convertit en un champ date, renvoyant les résultats au format de la variable système DateFormat.
La fonction makeweekdate() et ses arguments sont également imbriqués dans une fonction weekday() pour renvoyer le champ week_day. Comme indiqué dans le tableau ci-dessus, le champ week_day renvoie Monday (Lundi) dans tous les cas, car ce paramètre a été laissé vide dans la fonction makeweekdate(), qui, par défaut, prend la valeur 0 (premier jour de la semaine), et le premier jour de la semaine est défini sur Monday par la variable système FirstWeekDay.
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 les totaux des ventes hebdomadaires pour l'année 2022 dans une table appelée Sales.
Dates de transaction fournies sur trois champs : year, week et sales.
Dans cet exemple, un objet graphique sera utilisé pour créer une mesure équivalente au calcul end_of_week du premier exemple. Cette mesure utilisera la fonction makeweekdate() pour renvoyer la date du vendredi de cette semaine-là au format MM/DD/YYYY.
Pour prouver que la date renvoyée est un vendredi, une deuxième mesure est créée pour renvoyer le jour de la semaine.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Résultats
Procédez comme suit :
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
transaction_year
transaction_week
Pour effectuer le calcul équivalent à celui du champ end_of_week du premier exemple, créez la mesure suivante :
Un champ équivalent au champ end_of_week est créé dans l'objet graphique sous forme de mesure à l'aide de la fonction makeweekdate(). Les champs transaction_year et transaction_week sont transmis comme arguments year (année) et week (semaine). Une valeur 4 est utilisée pour l'argument day (jour).
La fonction combine ensuite ces valeurs et les convertit en un champ date, renvoyant les résultats au format de la variable système DateFormat.
La fonction makeweekdate() et ses arguments sont également imbriqués dans une fonction weekday() pour renvoyer un calcul équivalent à celui du champ week_day du premier exemple. Comme indiqué dans le tableau ci-dessus, la dernière colonne à droite montre que ces dates se produisent un vendredi.
Exemple 4 – scénario
Vue d'ensemble
Dans cet exemple, créez une liste de dates contenant tous les vendredis de l'année 2022.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Script de chargement
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Résultats
Tableau de résultats
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
+ 27 lignes supplémentaires
La fonction makeweekdate() trouve chaque vendredi de l'année 2022. L'utilisation d'un paramètre week égal à -2 garantit qu'il ne manque aucune date. Pour finir, un chargement précédent crée un champ weekday supplémentaire à des fins de clarté, pour indiquer que chaque valeur date est un vendredi.
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 !