# inlunarweek Fonction de script et 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.

InLunarWeek (timestamp, base\_date, period\_no[, first\_week\_day])

Booléen

Note Informations

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`.

Diagramme de la fonction `inlunarweek()`

Diagramme de la fonction `inlunarweek()`

Diagramme de la fonction `inlunarweek()`inlunarweek() ![Exemple de diagramme de la fonction inlunarweek, montrant les dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-overview.png)

## 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',<br>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',<br>0)` | Renvoie `FALSE`, car la `base_date` 01/07/2013 tombe pendant la semaine lunaire définie du 01/01/2013 au 01/07/2013. |
| `inlunarweek('01/12/2013', '01/14/2013',<br>-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',<br>-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',<br>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 :

Fonctions associées

| Fonction | Interaction |
| --- | --- |
| [lunarweekname Fonction de script et de graphique](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | 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/DD/YYYY. 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 où 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'Qlik Sense interface utilisateur. Qlik Sense sera affiché dans la même langue que le navigateur que vous utilisez.

## Exemple 1 - aucun argument supplémentaire

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données de transactions pour le mois de janvier, chargé dans une table appelée `Transactions`.

* Champ de date fourni dans la variable système `DateFormat` au format (MM/DD/YYYY).

Créez un champ, `in_lunar_week`, qui détermine si les transactions ont eu lieu pendant la même semaine lunaire que le 10 janvier.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Résultats

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 |

Fonction `inlunarweek()`, exemple de base

Fonction `inlunarweek()`, exemple de base

Fonction `inlunarweek()`inlunarweek(), exemple de base ![Exemple d'utilisation de la fonction inlunarweek montrant la plage de dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-basic-example.png)

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweek.htm)

#### Exemples et résultats :

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Même jeu 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.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 2) as [2_lunar_weeks_later]
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Résultats

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 |

Fonction `inlunarweek()`, exemple period\_no

Fonction `inlunarweek()`, exemple period\_no

Fonction `inlunarweek()`inlunarweek(), exemple period\_no ![Fonction inlunarweek, exemple period_no](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-period-no.png)

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweek.htm)

#### Script de chargement et résultats

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 jeu 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 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_day` égal à 5. Cela détermine le début des semaines lunaires le 5 janvier.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0,5) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Résultats

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 |

Fonction `inlunarweek()`, exemple first\_week\_day

Fonction `inlunarweek()`, exemple first\_week\_day

Fonction `inlunarweek()`inlunarweek(), exemple first\_week\_day ![Exemple d'utilisation de la fonction inlunarweek montrant la plage de dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-first-week-day.png)

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweek.htm)

#### Script de chargement et expression de graphique :

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Même jeu 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 jeu 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.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Résultats

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweek.htm)

#### Script de chargement et expression de graphique :

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

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 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à.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Résultats

Procédez comme suit :

1. Chargez les données et ouvrez une feuille. Créez un tableau.

2. Créez une dimension pour afficher les noms de mois :

   =lunarweekname(manufacture\_date)

3. Créez une mesure pour identifier les produits défectueux et les produits corrects via la fonction inlunarweek() :

   =if(only(inlunarweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless')

4. Créez une mesure pour additionner les valeurs cost\_price des produits :

   =sum(cost\_price)

5. Définissez le Formatage des nombres des mesures sur Money (Devise).

6. Sous Aspect, désactivez Totals (Totaux).

Tableau de résultats

| lunarweekname(manufacture\_date) | =if(only(inlunarweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless') | sum(cost\_price) |
| --- | --- | --- |
| 2022/01 | Faultless | $125.79 |
| 2022/02 | Defective | $316.38 |
| 2022/03 | Faultless | $455.75 |
| 2022/04 | Faultless | $146.09 |

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).