inlunarweek - fonction de script et fonction de graphique
Cette fonction détermine si l'argument timestamp tombe pendant la semaine lunaire comprenant l'argument base_date. Dans Qlik Sense, les semaines lunaires sont définies en comptant le 1er janvier comme le premier jour de la semaine. À l'exception de la dernière semaine de l'année, chaque semaine contiendra 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 inlunarweek() détermine la semaine lunaire de la base_date. Elle renvoie ensuite un résultat booléen une qu'elle a déterminé si chaque valeur d'horodatage tombe pendant la même semaine lunaire que la base_date.
Cas d'utilisation
La fonction inlunarweek() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression IF. Cela renverrait une agrégation ou un calcul suivant que la date évaluée s'est produite ou non au cours de la semaine lunaire en question.
Par exemple, la fonction inlunarweek() peut être utilisée pour identifier l'ensemble des équipements fabriqués au cours d'une semaine lunaire donnée.
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é.
Exemples de fonction
Exemple
Résultat
inlunarweek('01/12/2013', '01/14/2013',
0)
Renvoie TRUE, car la valeur de timestamp, 01/12/2013, tombe pendant la semaine du 01/08/2013 au 01/14/2013.
inlunarweek('01/12/2013', '01/07/2013',
0)
Renvoie FALSE, car la base_date01/07/2013 tombe pendant la semaine lunaire définie du 01/01/2013 au 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Renvoie FALSE. La définition de la valeur de period_no sur -1 décale la semaine à la semaine précédente, du 01/01/2013 au 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Renvoie TRUE. Par rapport à l'exemple précédent, l'timestamp tombe pendant la semaine suivante, après avoir pris en compte le décalage en arrière.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Renvoie FALSE. La définition d'une valeur 3 pour first_week_day signifie que le début de l'année est calculé à partir du 01/04/2013. Par conséquent, la valeur de base_date tombe pendant la première semaine et la valeur de timestamp tombe pendant la semaine du 01/11/2013 au 01/17/2013.
La fonction inlunarweek() 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.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_lunar_week
Tableau de résultats
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Le champ in_lunar_week est créé dans l'instruction preceding load via la fonction inlunarweek(), puis en transmettant les éléments suivants comme arguments de la fonction :
Le champ date
Une date codée en dur pour le 10 janvier comme base_date
Un argument period_no égal à 0
Étant donné que les semaines lunaires commencent le 1er janvier, le 10 janvier tomberait pendant la semaine lunaire qui commence le 8 janvier et qui se termine le 14 janvier. 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 :
Même ensemble de données et même scénario que ceux du premier exemple.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
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 lunaires après le 10 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/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
Dans cet exemple, étant donné qu'un argument period_no égal à 2 a été utilisé comme argument de décalage dans la fonction inlunarweek(), la fonction définit la semaine commençant le 22 janvier comme la semaine lunaire par rapport à laquelle valider les transactions. Par conséquent, toute transaction effectuée entre le 22 janvier et le 28 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 utilise le même ensemble de données et le même scénario que ceux du premier exemple. Cependant, dans l'exemple, nous définissons les semaines lunaires de sorte qu'elles commencent le 6 janvier.
Même ensemble 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_day égal à 5. Cela détermine le début des semaines lunaires le 5 janvier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_lunar_week
Tableau de résultats
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Dans cet exemple, étant donné que l'argument first_week_date égal à 5 est utilisé dans la fonction inlunarweek(), il décale le début du calendrier de semaines lunaires au 6 janvier. Par conséquent, le 10 janvier tombe pendant la semaine lunaire commençant le 6 janvier et se terminant le 12 janvier. Toute transaction qui tombe entre ces deux dates renverra une valeur booléenne TRUE.
Exemple 4 - 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 :
Même ensemble de données et même scénario que ceux du premier exemple.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Cependant, dans cet exemple, le même ensemble de données est chargé dans l'application. Le calcul qui détermine si les transactions ont eu lieu pendant la même semaine lunaire que celle du 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.
Pour calculer si une transaction a lieu pendant la semaine lunaire contenant le 10 janvier, créez la mesure suivante :
= inlunarweek(date,'01/10/2022', 0)
Tableau de résultats
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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 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 au cours de la semaine lunaire incluant le 12 janvier étaient défectueux. L'utilisateur final souhaite un objet graphique qui affiche, par nom de semaine lunaire, l'état des produits fabriqués 'defective' (défectueux) ou 'faultless' (corrects) et le coût des produits fabriqués ce mois-là.
La fonction inlunarweek() 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 lunaire qui contient le 10 janvier, la fonction inlunarweek() 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 !