inlunarweektodate - funzione dello script e del grafico
Questa funzione stabilisce se timestamp ricade all'interno della parte della settimana lunare fino a includere l'ultimo millisecondo di base_date. Le settimane lunari in Qlik Sense sono definite contando il 1° gennaio come primo giorno della settimana e, a parte l'ultima settimana dell'anno, conterranno esattamente sette giorni.
In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.
La funzione inlunarweektodate() funge da punto finale della settimana lunare. In contrasto, la funzione inlunarweek() determina la settimana lunare in cui cade base_date. Ad esempio, se il base_date fosse il 5 gennaio, qualsiasi timestamp tra il 1 e il 5 gennaio restituirebbe un risultato booleano di TRUE, mentre le date del 6 e 7 gennaio e successive restituirebbero un risultato booleano di FALSE.
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.
Casi di utilizzo
La funzione inlunarweektodate() restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un'espressione IF. La funzione inlunarweektodate() viene utilizzata quando l'utente desidera che il calcolo restituisca un'aggregazione o un calcolo, a seconda che la data valutata sia avvenuta in un particolare segmento della settimana in questione.
Ad esempio, la funzione inlunarweektodate() può essere utilizzata per identificare tutte le apparecchiature prodotte in una determinata settimana fino a una data specifica.
Esempi di funzioni
Esempio
Risultato
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Restituisce TRUE, dato che il valore di timestamp, 01/12/2013, ricade nella parte della settimana da 01/08/2013 a 01/13/2013.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Restituisce FALSE, poiché il valore di timestamp è successivo al valore di base_date, anche se le due date si trovano nella stessa settimana lunare prima di 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Restituisce TRUE. Specificando un lavoro pari a 1 per period_no, base_date slitta in avanti di una settimana, pertanto il valore ditimestamp ricade nella parte della settimana lunare.
La funzione inlunarweektodate() 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 contenente un insieme di transazioni per il mese di gennaio, caricato in una tabella denominata Transactions. È utilizzata la variabile di sistema predefinita DateFormat MM/GG/AAAA.
Creare un campo, in_lunar_week_to_date, che determina se le transazioni sono avvenute nella settimana lunare alla data del 10 gennaio.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
in_lunar_week_to_date
Tabella dei risultati
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
Il campo in_lunar_week_to_date viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione inlunarweektodate() e trasferendo il campo date, una data con hard coding per il 10 gennaio come nostro base_date, e un offset di 0 come argomenti della funzione.
Poiché le settimane lunari iniziano il 1° gennaio, il 10 gennaio cadrebbe nella settimana lunare che inizia l'8 gennaio; e poiché stiamo utilizzando la funzione inlunarweektodate(), quella settimana lunare finirebbe il 10. 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 lo stesso set di dati e lo stesso scenario del primo esempio. 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 dopo la settimana lunare alla data del 1° 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/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
In questo caso, la funzione inlunarweektodate() determina che la settimana lunare fino al 10 gennaio equivale a tre giorni (8, 9, 10 gennaio). Poiché è stato utilizzato un valore period_no di 2 come argomento di offset, questa settimana lunare è spostata di 14 giorni. Pertanto, la settimana lunare di tre giorni comprende il 22, 23 e 24 gennaio. Qualsiasi transazione effettuata tra il 22 e il 24 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 contiene:
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_date di 3. In questo modo le settimane lunari iniziano il 3 gennaio.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
in_lunar_week_to_date
Tabella dei risultati
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
In questo caso, poiché nella funzione inlunarweek() viene utilizzato l'argomento 3 the first_week_date, la prima settimana lunare andrà dal 3 al 10 gennaio. Poiché il 10 gennaio è anche il base_date, qualsiasi transazione che cade tra queste due date restituirà un valore booleano di TRUE.
Esempio 4 – Esempio di oggetto grafico
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio.
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 fino al 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.
Creare la seguente misura:
=inlunarweektodate(date,'01/10/2022', 0)
Tabella dei risultati
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 misura in_lunar_week_to_date viene creata nell'oggetto grafico utilizzando la funzione inlunarweektodate() e passando al campo data, una data con hard-coding per il 10 gennaio come nostro base_date, e un offset di 0 come argomenti della funzione.
Poiché le settimane lunari iniziano il 1° gennaio, il 10 gennaio cadrebbe nella settimana lunare che inizia l'8 gennaio. Inoltre, dal momento che stiamo utilizzando la funzione inlunarweektodate(), la settimana lunare terminerebbe il 10. 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 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.
Si è determinato che, a causa di un errore delle apparecchiature, i prodotti fabbricati nella settimana lunare del 12 gennaio erano difettosi. Il problema è stato risolto il 13 gennaio. L'utente finale desidera un oggetto grafico che visualizzi, per settimana, se i prodotti fabbricati sono "difettosi" o "non difettosi" e il costo dei prodotti fabbricati quella settimana.
La funzione inlunarweektodate() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per coloro che restituiscono il valore booleano TRUE, contrassegna i prodotti come ‘Defective’. Per qualsiasi prodotto che restituisce il valore FALSE, e quindi non è stato realizzato nella settimana lunare fino al 12 gennaio, contrassegna i prodotti come ‘Faultless’.
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!