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.
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.
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',
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',
0)
Restituisce FALSE, dato che il valore di base_date01/07/2013 è nella settimana lunare definita come 01/01/2013 a 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-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',
-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',
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:
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
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
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.
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
Il campo in_lunar_week viene creato nella precedente istruzione LOAD 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
Aperiod_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
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
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.
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
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
Panoramica
Aprire l'editor 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.
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
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
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
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.
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
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
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.
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".
Hai trovato utile questa pagina?
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!