inlunarweektodate - fonction de script et fonction de graphique
Cette fonction détermine si l'argument timestamp se trouve dans la partie de la semaine lunaire jusqu'à la dernière milliseconde spécifiée dans base_date. Dans Qlik Sense, les semaines lunaires sont définies en comptant le 1er janvier comme le premier jour de la semaine et, à l'exception de la dernière semaine de l'année, elles contiendront exactement sept jours.
Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
La fonction inlunarweektodate() joue le rôle de point final de la semaine lunaire. En revanche, la fonction inlunarweek() détermine la semaine lunaire de la base_date. Par exemple, si la base_date était le 5 janvier, tout horodatage entre le 1er janvier et le 5 janvier renverrait un résultat booléen TRUE, tandis que les dates du 6 et du 7 janvier et les dates ultérieures renverraient un résultat booléen FALSE.
Arguments
Argument
Description
timestamp
Date à comparer à base_date.
base_date
Date utilisée pour évaluer la semaine lunaire.
period_no
Il est possible de décaler la semaine lunaire à l'aide de l'argument period_no. period_no est un entier, où la valeur 0 indique la semaine lunaire comprenant l'argument base_date. Les valeurs négatives spécifiées pour period_no indiquent les semaines lunaires passées tandis que les valeurs positives désignent les semaines lunaires à venir.
first_week_day
Décalage pouvant être supérieur ou inférieur à zéro. Il modifie le début de l'année du nombre de jours et/ou de fractions de jour spécifié.
Cas d'utilisation
La fonction inlunarweektodate() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression IF. La fonction inlunarweektodate() serait utilisée lorsque l'utilisateur souhaite que le calcul renvoie une agrégation ou un calcul, suivant que la date évaluée a eu lieu ou non pendant un segment donné de la semaine en question.
Par exemple, la fonction inlunarweektodate() peut être utilisée pour identifier l'ensemble des équipements fabriqués au cours d'une semaine donnée jusqu'à une date spécifique incluse.
Exemples de fonction
Exemple
Résultat
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Renvoie TRUE, car la valeur de l'timestamp, 01/12/2013, tombe pendant la partie de la semaine du 01/08/2013 au 01/13/2013.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Renvoie FALSE, car la valeur de l'timestamp est postérieure à la valeur de la base_date, même si les deux dates font partie de la même semaine lunaire précédant le 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Renvoie TRUE. La définition de la valeur 1 pour period_no a pour effet de retarder la date de référence base_date d'une semaine. De ce fait, la valeur de timestamp tombe dans la partie de la semaine lunaire.
La fonction inlunarweektodate() est souvent utilisée en combinaison avec les fonctions suivantes :
Cette fonction permet de déterminer le nombre de semaines lunaires de l'année pendant lesquelles tombe une date d'entrée.
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 :
Jeu de données contenant un ensemble de transactions pour le mois de janvier, chargé dans une table appelée Transactions. La variable système DateFormat par défaut MM/DD/YYYY est utilisée.
Créez un champ, in_lunar_week_to_date, qui détermine les transactions qui ont eu lieu pendant la semaine lunaire jusqu'à la date du 10 janvier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_lunar_week_to_date
Tableau de résultats
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Le champ in_lunar_week_to_date est créé dans l'instruction preceding load via la fonction inlunarweektodate() et en transmettant le champ date, une date codée en dur pour le 10 janvier comme notre base_date et un décalage égal à 0 comme arguments de la fonction.
Étant donné que les semaines lunaires commencent le 1er janvier, le 10 janvier tomberait pendant la semaine lunaire qui commence le 8 janvier ; et, parce que nous utilisons la fonction inlunarweektodate(), cette semaine lunaire se terminerait donc le 10. Par conséquent, toutes les transactions qui se produisent entre ces deux dates de janvier renverraient une valeur booléenne TRUE. Cela est validé dans le tableau de résultats.
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 jeu de données et le même scénario que ceux du premier exemple. Cependant, dans cet exemple, la tâche consiste à créer un champ, 2_lunar_weeks_later, qui détermine si les transactions ont eu lieu ou non deux semaines après la semaine lunaire jusqu'à la date du 1er janvier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
2_lunar_weeks_later
Tableau de résultats
date
2_lunar_weeks_later
1/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Dans cet exemple, la fonction inlunarweektodate() détermine que la semaine lunaire jusqu'au 10 janvier compte trois jours (les 8, 9 et 10 janvier). Étant donné qu'un argument period_no égal à 2 a été utilisé comme argument de décalage, cette semaine lunaire est décalée de 14 jours. Par conséquent, cette semaine lunaire de trois jours inclut les 22, 23 et 24 janvier. Toute transaction effectuée entre le 22 janvier et le 24 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 :
Même jeu de données et même scénario que ceux du premier exemple.
La variable système DateFormat par défaut MM/DD/YYYY est utilisée.
Argument first_week_date égal à 3. Cela détermine le début des semaines lunaires le 3 janvier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_lunar_week_to_date
Tableau de résultats
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Dans cet exemple, étant donné que l'argument the first_week_date égal à 3 est utilisé dans la fonction inlunarweek(), la première semaine lunaire se déroulera du 3 janvier au 10 janvier. Étant donné que le 10 janvier est également la base_date, toute transaction qui tombe entre ces deux dates renverra une valeur booléenne TRUE.
Exemple 4 - 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 jeu de données et le même scénario que ceux du premier exemple.
Cependant, dans cet exemple, le même jeu de données est chargé dans l'application. Le calcul qui détermine si les transactions ont eu lieu pendant la semaine lunaire jusqu'au 10 janvier est créé sous forme de mesure dans un objet graphique de l'application.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension : date.
Créez la mesure suivante :
=inlunarweektodate(date,'01/10/2022', 0)
Tableau des résultats
date
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
La mesure in_lunar_week_to_date est créée dans l'objet graphique via la fonction inlunarweektodate() et en transmettant le champ date, une date codée en dur pour le 10 janvier comme notre base_date et un décalage égal à 0 comme arguments de la fonction.
Étant donné que les semaines lunaires commencent le 1er janvier, le 10 janvier tomberait pendant la semaine lunaire qui commence le 8 janvier . De plus, parce que nous utilisons la fonction inlunarweektodate(), cette semaine lunaire se terminerait le 10. Par conséquent, toutes les transactions qui se produisent entre ces deux dates de janvier renverraient une valeur booléenne TRUE. Cela est validé dans le tableau de résultats.
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 :
Jeu de données chargé dans une table appelée Products.
Informations incluant 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 pendant la semaine lunaire 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 inlunarweektodate() 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 lunaire 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 !