inweektodate - fonction de script et fonction de graphique
Cette fonction renvoie la valeur True si l'argument timestamp se trouve dans la partie de la semaine comprenant l'argument base_date jusqu'à la dernière milliseconde spécifiée dans base_date.
Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
La fonction inweektodate() utilise le paramètre base_date pour identifier une date limite maximale d'un segment de semaine, ainsi que sa date correspondante pour le début de la semaine, qui est basée sur la variable système FirstWeekDay (ou le paramètre first_week_day défini par l'utilisateur). Une fois ce segment de semaine défini, la fonction renvoie des résultats booléens lors de la comparaison des valeurs de date prescrites à ce segment.
Cas d'utilisation
La fonction inweektodate() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression if. Cela renvoie une agrégation ou un calcul suivant qu'une date évaluée s'est produite ou non au cours de la semaine en question jusqu'à une date donnée incluse.
Par exemple, la fonction inweektodate() peut être utilisée pour calculer toutes les ventes réalisées au cours d'une semaine spécifiée jusqu'à une date spécifique.
Arguments
Argument
Description
timestamp
Date à comparer à base_date.
base_date
Date utilisée pour évaluer la semaine.
period_no
Il est possible de décaler la semaine à l'aide de l'argument period_no. period_no est un entier, où la valeur 0 indique la semaine comprenant l'argument base_date. Les valeurs négatives spécifiées pour period_no indiquent les semaines passées tandis que les valeurs positives désignent les semaines à venir.
first_week_day
Par défaut, le premier jour de la semaine est le dimanche (tel que déterminé par la variable système FirstWeekDay), commençant à minuit entre le samedi et le dimanche. Le paramètre first_week_day remplace la variable FirstWeekDay. Pour que la semaine commence un autre jour, spécifiez un indicateur compris entre 0 et 6.
Pour une semaine commençant le lundi et se terminant le dimanche, utilisez un indicateur 0 pour lundi, 1 pour mardi, 2 pour mercredi, 3 pour jeudi, 4 pour vendredi, 5 pour samedi et 6 pour dimanche.
Exemples de fonction
Exemple
Interaction
inweektodate('01/12/2006', '01/12/2006', 0)
Renvoie TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Renvoie FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Renvoie FALSE. Comme period_no est défini sur -1, la date réelle par rapport à laquelle l'argument d'horodatage timestamp est mesuré est le 01/11/2006.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Renvoie FALSE, car first_week_day est défini sur 3 (un jeudi), ce qui fait du 01/12/2006 le premier jour de la semaine suivant la semaine contenant la date du 01/12/2006.
Ces rubriques peuvent vous aider à utiliser cette fonction :
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.
Exemple 1 – aucun argument supplémentaire
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 le mois de janvier 2022, chargé dans une table appelée ‘Transactions’.
Champ de données fourni au format TimestampFormat='M/D/YYYY h:mm:ss[.fff]'.
Création d'un champ, in_week_to_date, qui détermine les transactions qui ont eu lieu au cours de la semaine jusqu'au 14 janvier 2022.
Création d'un champ supplémentaire appelé weekday via la fonction weekday(). Ce nouveau champ est créé pour indiquer quel jour de la semaine correspond à chaque date.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
week_day
in_week_to_date
Tableau de résultats
date
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
-1
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Le champ in_week_to_date est créé dans l'instruction preceding load à l'aide de la fonction inweektodate(). Le premier argument fourni identifie le champ en cours d'évaluation. Le deuxième argument est une date codée en dur du 14 janvier, qui est la valeur base_date qui identifie la semaine à segmenter et définit la limite de fin du segment en question. Une valeur period_no égale à 0 constitue l'argument final, ce qui signifie que la fonction ne compare pas les semaines précédant ou suivant la semaine segmentée.
La variable système FirstWeekDay détermine que les semaines commencent un dimanche et se terminent un samedi. Par conséquent, janvier serait divisé en semaines selon le diagramme ci-dessous, les dates comprises entre le 9 et le 14 janvier fournissant la période valide pour le calcul inweekdodate() :
Toute transaction qui se produit entre le 9 janvier et le 14 janvier renvoie un résultat booléen TRUE. Les transactions avant et après les dates renvoient un résultat booléen FALSE.
Exemple 2 – period_no
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 premier exemple.
Création d'un champ, prev_week_to_date, qui détermine les transactions qui ont eu lieu une semaine complète avant la fin du segment de semaine le 14 janvier 2022.
Création d'un champ supplémentaire appelé weekday via la fonction weekday(). Cela a pour objectif d'indiquer quel jour de la semaine correspond à chaque date.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
week_day
prev_week_to_date
Tableau de résultats
date
week_day
prev_week_to_date
2022-01-02 12:22:06
Sun
-1
2022-01-05 01:02:30
Wed
-1
2022-01-06 15:36:20
Thu
-1
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
0
2022-01-10 21:13:01
Mon
0
2022-01-11 00:57:13
Tue
0
2022-01-12 09:26:02
Wed
0
2022-01-13 15:05:09
Thu
0
2022-01-14 18:44:57
Fri
0
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Une valeur period_no égale à -1 indique que la fonction inweektodate () compare le segment de trimestre d'entrée à la semaine précédente. Le segment de semaine équivaut initialement aux dates entre le 9 janvier et le 14 janvier. La valeur period_no décale ensuite les deux limites de début et de fin de ce segment d'une semaine en arrière, ce qui fait que les limites de date deviennent du 2 janvier au 7 janvier.
Par conséquent, toute transaction effectuée entre le 2 janvier et le 8 janvier (sans inclure le 8 janvier lui-même) renverra un résultat booléen TRUE.
Exemple 3 – 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 :
Même ensemble de données et même scénario que ceux du premier exemple.
Création d'un champ, in_week_to_date, qui détermine les transactions qui ont eu lieu au cours de la semaine jusqu'au 14 janvier 2022.
Création d'un champ supplémentaire appelé weekday via la fonction weekday(). Cela a pour objectif d'indiquer quel jour de la semaine correspond à chaque date.
Dans cet exemple, nous considérons le lundi comme le premier jour de la semaine.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
week_day
in_week_to_date
Tableau de résultats
date
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
0
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Si on utilise 0 comme argument first_week_day dans la fonction inweektodate(), l'argument de la fonction remplace la variable système FirstWeekDay et définit le lundi comme le premier jour de la semaine.
Par conséquent, toute transaction qui se produit entre le 10 janvier et le 14 janvier renverra un résultat booléen TRUE, tandis que les transactions avec des dates en dehors de ces limites renverront une valeur FALSE.
Exemple 4 – Exemple d'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 détermine les transactions qui ont eu lieu la même semaine jusqu'au 14 janvier est créé sous forme de mesure dans l'objet graphique.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension : date.
Pour calculer si des transactions ont eu lieu au cours de la même semaine jusqu'au 14 janvier, créez la mesure suivante :
=inweektodate(date,'01/14/2022',0)
Pour indiquer quel jour de la semaine correspond à chaque date, créez une mesure supplémentaire :
=weekday(date)
Tableau de résultats
date
week_day
in_week_to_date
2022-01-02 12:22:06
Sun
0
2022-01-05 01:02:30
Wed
0
2022-01-06 15:36:20
Thu
0
2022-01-08 10:58:35
Sat
0
2022-01-09 08:53:32
Sun
-1
2022-01-10 21:13:01
Mon
-1
2022-01-11 00:57:13
Tue
-1
2022-01-12 09:26:02
Wed
-1
2022-01-13 15:05:09
Thu
-1
2022-01-14 18:44:57
Fri
-1
2022-01-15 06:10:46
Sat
0
2022-01-16 06:39:27
Sun
0
2022-01-17 10:44:16
Mon
0
2022-01-18 18:48:17
Tue
0
2022-01-26 04:36:03
Wed
0
2022-01-27 08:07:49
Thu
0
2022-01-28 12:24:29
Fri
0
2022-01-30 11:56:56
Sun
0
2022-01-30 14:40:19
Sun
0
2022-01-31 05:28:21
Mon
0
Le champ in_week_to_date est créé sous forme de mesure dans l'objet graphique à l'aide de la fonction inweektodate(). Le premier argument fourni identifie le champ en cours d'évaluation. Le deuxième argument est une date codée en dur du 14 janvier, qui est la valeur base_date qui identifie la semaine à segmenter et définit la limite de fin du segment en question. Une valeur period_no égale à 0 constitue l'argument final, ce qui signifie que la fonction ne compare pas les semaines précédant ou suivant la semaine segmentée.
La variable système FirstWeekDay détermine que les semaines commencent un dimanche et se terminent un samedi. Par conséquent, janvier serait divisé en semaines selon le diagramme ci-dessous, les dates comprises entre le 9 et le 14 janvier fournissant la période valide pour le calcul inweekdodate() :
Toute transaction qui se produit entre le 9 janvier et le 14 janvier renvoie un résultat booléen TRUE. Les transactions avant et après les dates renvoient un résultat booléen FALSE.
Exemple 5 – 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 chargé dans une table appelée Products.
Informations concernant l'ID du produit, la date de fabrication et le prix de revient.
Il a été identifié que suite à une erreur d'équipement, des produits fabriqués la semaine du 12 janvier étaient défectueux. Le problème a été résolu le 13 janvier. L'utilisateur final souhaite un objet graphique qui affiche, par semaine, l'état des produits fabriqués 'defective' (défectueux) ou 'faultless' (corrects) et le coût des produits fabriqués cette semaine-là.
La fonction inweektodate() renvoie une valeur booléenne lors de l'évaluation des dates de fabrication de chacun des produits. Les produits qui renvoient une valeur booléenne TRUE sont identifiés comme 'Defective'. Tout produit renvoyant une valeur FALSE et par conséquent non fabriqué au cours de la semaine jusqu'au 12 janvier est identifié comme ‘Faultless’.
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 !