Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
La fonction inweek() utilise l'argument base_date pour identifier la période de sept jours de la date. Le jour de début de la semaine est basé sur la variable système FirstWeekDay. Cependant, vous pouvez également modifier le premier jour de la semaine en utilisant l'argument first_week_day de la fonction inweek().
Une fois la semaine sélectionnée définie, la fonction renverra des résultats booléens lors de la comparaison des valeurs de date prescrites à ce segment hebdomadaire.
Cas d'utilisation
La fonction inweek() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression if expression. La fonction inweek() renvoie une agrégation ou un calcul qui dépend du fait qu'une date évaluée est tombée ou non pendant la semaine contenant la date sélectionnée de l'argument base_date.
Par exemple, la fonction inweek() peut être utilisée pour identifier l'ensemble des équipements fabriqués au cours d'une semaine 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.
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.
Exemples de fonction
Exemple
Résultat
inweek ('01/12/2006', '01/14/2006', 0)
Renvoie TRUE
inweek ('01/12/2006', '01/20/2006', 0 )
Renvoie FALSE
inweek ('01/12/2006', '01/14/2006', -1 )
Renvoie FALSE
inweek ('01/07/2006', '01/14/2006', -1)
Renvoie TRUE
inweek ('01/12/2006', '01/09/2006', 0, 3)
Renvoie FALSE, car la valeur first_week_day est spécifiée sur 3 (jeudi), ce qui fait de la date du 01/12/2006 le premier jour de la semaine suivant la semaine contenant le 01/09/2006.
Ces rubriques peuvent vous aider à utiliser cette fonction :
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
week_day
in_week
Tableau de résultats
date
week_day
in_week
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
-1
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
Le champ ‘in_week’ est créé dans l'instruction preceding load à l'aide de la fonction inweek(). Le premier argument identifie le champ en cours d'évaluation. Le deuxième argument est une date codée en dur du 14 janvier, qui est la base_date. L'argument base_date fonctionne avec la variable système FirstWeekDay pour identifier la semaine de comparaison. Un argument period_no égal à 0 — qui signifie que la fonction ne compare pas les semaines précédant ou suivant la semaine segmentée — constitue l'argument final.
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 15 janvier fournissant la période valide pour le calcul inweek() :
Toute transaction qui se produit entre le 9 janvier et le 15 janvier renvoie un résultat booléen TRUE.
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 :
Le même ensemble de données contenant un ensemble de transactions pour 2022 est chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Chargement précédent contenant les éléments suivants :
Fonction inweek (), définie comme le champ ‘prev_week’, qui détermine les transactions qui ont eu lieu une semaine complète avant la semaine du 14 janvier 2022.
La fonction weekday(), définie comme le champ ‘week_day’, qui indique le jour de la semaine correspondant à 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
Tableau de résultats
date
week_day
prev_week
01/02/2022
Sun
-1
01/05/2022
Wed
-1
01/06/2022
Thu
-1
01/08/2022
Sat
-1
01/09/2022
Sun
0
01/10/2022
Mon
0
01/11/2022
Tue
0
01/12/2022
Wed
0
01/13/2022
Thu
0
01/14/2022
Fri
0
01/15/2022
Sat
0
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
Si on applique la valeur -1 à l'argument period_no dans la fonction inweek(), les limites de la semaine de comparaison sont décalées de sept jours complets en arrière. Avec un argument period_no égal à 0, la semaine serait comprise entre le 9 et le 15 janvier. Mais, dans cet exemple, l'argument period_no défini sur -1 décale les limites de début et de fin de ce segment d'une semaine en arrière. Les limites des dates deviennent du 2 janvier au 8 janvier.
Par conséquent, toute transaction effectuée entre le 2 janvier et le 8 janvier 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 :
Le même ensemble de données contenant un ensemble de transactions pour 2022 est chargé dans une table appelée ‘Transactions’.
Variable système FirstWeekDay définie sur 6 (dimanche).
Chargement précédent contenant les éléments suivants :
Fonction inweek(), définie comme le champ ‘in_week’, qui détermine les transactions qui ont eu lieu au cours de la semaine du 14 janvier 2022.
La fonction weekday(), définie comme le champ ‘week_day’, qui indique le jour de la semaine correspondant à 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
Tableau de résultats
date
week_day
in_week
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
0
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
-1
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
Si on applique 0 à l'argument first_week_day dans la fonction inweek(), l'argument remplace la variable système FirstWeekDay et définit le lundi comme le premier jour de la semaine.
Par conséquent, toute transaction effectuée entre le 10 et le 16 janvier renverra un résultat booléen TRUE.
Exemple 4 - 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. Créez une mesure dans le tableau de résultats pour déterminer les transactions qui ont eu lieu au cours de la semaine du 14 janvier 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
date
Créez les mesures suivantes :
=inweek (date,'01/14/2022',0), pour calculer si des transactions ont eu lieu au cours de la même semaine que celle du 14 janvier.
=weekday(date), pour indiquer quel jour de la semaine correspond à chaque date.
Tableau de résultats
date
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Sun
0
01/05/2022
Wed
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Sun
-1
01/10/2022
Mon
-1
01/11/2022
Tue
-1
01/12/2022
Wed
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Sun
0
01/17/2022
Mon
0
01/18/2022
Tue
0
01/26/2022
Wed
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Sun
0
01/31/2022
Mon
0
La mesure ‘in_week’ est créée dans le graphique à l'aide de la fonction inweek(). Le premier argument identifie le champ en cours d'évaluation. Le deuxième argument est une date codée en dur du 14 janvier, qui est la base_date. L'argument base_date fonctionne avec la variable système FirstWeekDay pour identifier la semaine de comparaison. Le dernier argument est un argument period_no défini sur 0.
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 15 janvier fournissant la période valide pour le calcul inweek() :
Toute transaction qui se produit entre le 9 janvier et le 15 janvier renvoie un résultat booléen TRUE.
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’.
La table contient les champs suivants :
product ID
product type
manufacture date
cost price
Il a été identifié que suite, à une erreur d'équipement, des produits fabriqués la semaine du 12 janvier étaient défectueux. L'utilisateur final souhaite un 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à.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
=weekname(manufacture_date)
Créez les mesures suivantes :
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), pour identifier les produits défectueux et les produits corrects via la fonction inweek().
=sum(cost_price), pour afficher la somme du coût de chaque produit.
Procédez comme suit :
Définissez le Formatage des nombres des mesures sur Money (Devise).
La fonction inweek() renvoie une valeur booléenne lors de l'évaluation des dates de fabrication de chacun des produits. Pour tout produit fabriqué au cours de la semaine du 12 janvier, la fonction inweek() renvoie une valeur booléenne TRUE et identifie les produits comme ‘Defective’ (défectueux). Tout produit renvoyant une valeur FALSE, et par conséquent non fabriqué au cours de cette semaine-là, est identifié comme ‘Faultless’ (correct).
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 !