# inlunarweek - Funzione per script e grafici

Questa funzione determina se timestamp ricade all'interno della settimana lunare contenente base\_date. Le settimane lunari in Qlik Sense sono definite contando il 1° gennaio come primo giorno della settimana, a parte l'ultima settimana dell'anno, ogni settimana conterrà esattamente sette giorni.

Sintassi:

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

Tipo di dati restituiti: Boolean

Nota informatica

In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.

La funzione `inlunarweek()` determina la settimana lunare in cui cade `base_date`. Restituisce quindi un risultato booleano dopo aver determinato se ogni valore di timestamp si verifica nella stessa settimana lunare del valore `base_date`.

Schema della funzione `inlunarweek()`.

Schema della funzione `inlunarweek()`.

Schema della funzione `inlunarweek()`inlunarweek(). ![Schema di esempio della funzione inlunarweek, che mostra le date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-overview.png)

## Casi di utilizzo

La funzione `inlunarweek()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un'espressione IF. Questo restituisce un'aggregazione o un calcolo che dipende dal fatto che la data valutata si sia verificata durante la settimana lunare in questione.

Ad esempio, la funzione `inlunarweek()` può essere utilizzata per identificare tutte le apparecchiature prodotte in una particolare settimana lunare.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| timestamp | La data da confrontare con base\_date. |
| base\_date | La data utilizzata per valutare la settimana lunare. |
| period\_no | La settimana lunare può essere differita mediante period\_no. period\_no è un numero intero, in cui il valore 0 indica la settimana lunare che contiene base\_date. I valori negativi di period\_no indicano le settimane lunari precedenti, mentre i valori positivi indicano le settimane lunari successive. |
| first\_week\_day | Un differimento che può essere maggiore o minore di zero. Ciò modifica l'inizio dell'anno in base al numero specificato di giorni e/o frazioni di un giorno. |

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `inlunarweek('01/12/2013', '01/14/2013',<br>0)` | Restituisce il valore `TRUE`, dato che il valore di `timestamp`, 01/12/2013, ricade nella settimana 01/08/2013 a 01/14/2013. |
| `inlunarweek('01/12/2013', '01/07/2013',<br>0)` | Restituisce `FALSE`, dato che il valore di `base_date` 01/07/2013 è nella settimana lunare definita come 01/01/2013 a 01/07/2013. |
| `inlunarweek('01/12/2013', '01/14/2013',<br>-1)` | Restituisce `FALSE`. La specifica di un valore di period\_no come -1 fa slittare la settimana a quella precedente, 01/01/2013 a 01/07/2013. |
| `inlunarweek('01/07/2013', 01/14/2013',<br>-1)` | Restituisce `TRUE`. In confronto con l'esempio precedente, il valore `timestamp` è nella settimana precedente, dopo aver considerato lo slittamento all'indietro. |
| `inlunarweek('01/11/2006', '01/08/2006',<br>0, 3)` | Restituisce `FALSE`. La specifica di un valore di 3 per `first_week_day` significa che l'avvio dell'anno è calcolato da 01/04/2013. Pertanto il valore di `base`\_date ricade nella prima settimana mentre il valore di `timestamp` ricade nella settimana da 01/11/2013 a 01/17/2013. |

La funzione `inlunarweek()` viene spesso utilizzata in combinazione con le seguenti funzioni:

Funzioni correlate

| Funzione | Interazione |
| --- | --- |
| [lunarweekname - Funzione per script e grafici](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | Questa funzione viene utilizzata per determinare il numero della settimana lunare dell'anno in cui si verifica una data inserita. |

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione `SET DateFormat` nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi.

Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.

## Esempio 1 - Nessun argomento aggiuntivo

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati di transazioni per il mese di gennaio, che viene caricato in una tabella chiamata `Transactions`.

* Il campo della data è stato fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

Crea un campo, `in_lunar_week`, che determina se le transazioni sono avvenute nella stessa settimana lunare del 10 gennaio.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_lunar_week`

Tabella dei risultati

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

Funzione `inlunarweek()`, esempio base

Funzione `inlunarweek()`, esempio base

Funzione `inlunarweek()`inlunarweek(), esempio base![Esempio di utilizzo della funzione inlunarweek che mostra l'intervallo di date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-basic-example.png)

Il campo `in_lunar_week` viene creato nell'istruzione di caricamento precedente utilizzando la funzione `inlunarweek()` e passando i seguenti argomenti alla funzione:

* Il campo `date`

* La data del 10 gennaio, codificata in modo rigido, è `base_date`

* A`period_no` di 0

Poiché le settimane lunari iniziano il 1° gennaio, il 10 gennaio cadrebbe nella settimana lunare che inizia l'8 gennaio e termina il 14 gennaio. Pertanto, tutte le transazioni che si verificano tra queste due date di gennaio restituiranno un valore booleano di `TRUE`. Questo viene convalidato nella tabella dei risultati.

## Esempio 2 - period\_no

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

#### Esempi e risultati:

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

* Il campo della data è stato fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

Tuttavia, in questo esempio, il compito è quello di creare un campo, `2_lunar_weeks_later`, che determini se le transazioni sono avvenute o meno due settimane lunari dopo il 10 gennaio.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `2_lunar_weeks_later`

Tabella dei risultati

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

Funzione `inlunarweek()`, esempio period\_no

Funzione `inlunarweek()`, esempio period\_no

Funzione `inlunarweek()`inlunarweek(), esempio period\_no![funzione inlunarweek, esempio period_no](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-period-no.png)

In questo caso, poiché è stato utilizzato un valore `period_no` di 2 come argomento di offset nella funzione `inlunarweek()`, la funzione definisce la settimana che inizia il 22 gennaio come settimana lunare rispetto alla quale convalidare le transazioni. Pertanto, qualsiasi transazione effettuata tra il 22 e il 28 gennaio restituirà un risultato booleano di `TRUE`.

## Esempio 3 - first\_week\_day

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento utilizza lo stesso set di dati e lo stesso scenario del primo esempio. Tuttavia, nell'esempio, abbiamo impostato le settimane lunari a partire dal 6 gennaio.

* Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

* È utilizzata la variabile di sistema predefinita `DateFormat` MM/GG/AAAA.

* Un argomento `first_week_day` di 5. In questo modo le settimane lunari iniziano il 5 gennaio.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_lunar_week`

Tabella dei risultati

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

Funzione `inlunarweek()`, esempio first\_week\_day

Funzione `inlunarweek()`, esempio first\_week\_day

Funzione `inlunarweek()`inlunarweek(), esempio first\_week\_day![Esempio di utilizzo della funzione inlunarweek che mostra l'intervallo di date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-first-week-day.png)

In questo caso, poiché nella funzione `inlunarweek()` viene utilizzato l'argomento `first_week_date` 5, si sposta l'inizio della settimana lunare al 6 gennaio. Pertanto, il 10 gennaio cade nella settimana lunare che inizia il 6 gennaio e termina il 12 gennaio. Qualsiasi transazione che cade tra queste due date restituirà un valore booleano di `TRUE`.

## Esempio 4 - Oggetto grafico

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

#### Script di caricamento ed espressione del grafico:

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

* Il campo della data è stato fornito nel formato della variabile di sistema DateFormat (MM/GG/AAAA).

Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il calcolo che determina se le transazioni sono avvenute nella stessa settimana lunare del 10 gennaio viene creato come misura in un oggetto grafico dell'applicazione.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.

Per calcolare se una transazione avviene nella settimana lunare che contiene il 10 gennaio, creare la seguente misura:

= inlunarweek(date,'01/10/2022', 0)

Tabella dei risultati

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

## Esempio 5 - Scenario

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

#### Script di caricamento ed espressione del grafico:

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella chiamata Products.

* Informazioni composte da ID prodotto, data di produzione e prezzo di costo.

È stato individuato che, a causa di un errore delle apparecchiature, i prodotti fabbricati nella settimana lunare che comprendeva il 12 gennaio erano difettosi. L'utente finale desidera un oggetto grafico che visualizzi, per nome della settimana lunare, lo stato dei prodotti fabbricati "difettosi" o "non difettosi" e il costo dei prodotti fabbricati in quel mese.

Script di caricamento

```
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
];
```

Risultati

Procedere come indicato di seguito:

1. Caricare i dati e aprire un foglio. Creare una nuova tabella.

2. Creare una dimensione per mostrare i nomi dei mesi:

   =lunarweekname(manufacture\_date)

3. Creare una misura per identificare quali prodotti sono difettosi e quali sono privi di difetti utilizzando la funzione inlunarweek():

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

4. Creare una misura per sommare il valore cost\_price dei prodotti:

   =sum(cost\_price)

5. Impostare la Formattazione numero della misura su Denaro.

6. In Aspetto, disattivare Totals.

Tabella dei risultati

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

La funzione inlunarweek() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato nella settimana lunare che contiene il 10 gennaio, la funzione inlunarweek() restituisce un valore booleano di TRUE e contrassegna i prodotti come "difettosi". Tutti i prodotti che restituiscono un valore pari a FALSE, e che quindi non sono stati prodotti in quella settimana, vengono contrassegnati come "non difettosi".