lunarweekend - funzione dello script e del grafico
Questa funzione restituisce un valore corrispondente a un indicatore temporale recante l'ultimo millisecondo dell'ultimo giorno della settimana lunare contenente 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.
Sintassi:
LunarweekEnd(date[, period_no[, first_week_day]])
Tipo di dati restituiti: duale
La funzione lunarweekend() determina la settimana lunare in cui cade date. Quindi, restituisce un timestamp, nel formato data, per l'ultimo millisecondo di quella settimana.
Argomenti
Argomento
Descrizione
date
La data o la data e ora da valutare.
period_no
period_no è un numero intero o un'espressione la cui risoluzione è un numero intero, in cui il valore 0 indica la settimana lunare che contiene il valore 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 lunarweekend() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione di settimana non ancora trascorsa. A differenza della funzione weekend(), l'ultima settimana lunare di ogni anno solare terminerà il 31 dicembre. Ad esempio, la funzione lunarweekend() può essere utilizzata per calcolare gli interessi non ancora maturati durante la settimana.
Esempi di funzioni
Esempio
Risultato
lunarweekend('01/12/2013')
Restituisce 01/14/2013 23:59:59.
lunarweekend('01/12/2013', -1)
Restituisce 01/07/2013 23:59:59.
lunarweekend('01/12/2013', 0, 1)
Restituisce 01/15/2013 23:59:59.
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 2022, caricato in una tabella denominata 'Transactions'.
Il campo della data fornito nel formato della variabile di sistema DateFormat (MM/GG/AAAA).
La creazione di un campo, end_of_week, che restituisce un timestamp per la fine della settimana lunare in cui sono avvenute le transazioni.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
end_of_week
end_of_week_timestamp
Tabella dei risultati
date
end_of_week
end_of_week_timestamp
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
Il campo end_of_week viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione lunarweekend() e trasferendo il campo date come argomento della funzione.
La funzione lunarweekend() identifica in quale settimana lunare cade il valore della data, restituendo un timestamp per l'ultimo millisecondo di quella settimana.
La transazione 8189 è avvenuta il 19 gennaio. La funzione lunarweekend() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, il valore end_of_week per questa transazione restituisce l'ultimo millisecondo della settimana lunare, ovvero il 21 gennaio alle 23:59:59.
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.
La creazione di un campo, previous_lunar_week_end, che restituisce il timestamp per la fine della settimana lunare prima che avvenga la transazione.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
Tabella dei risultati
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
1/7/2022
12/31/2021
12/31/2021 11:59:59 PM
1/19/2022
01/14/2022
1/14/2022 11:59:59 PM
2/5/2022
02/04/2022
2/4/2022 11:59:59 PM
2/28/2022
02/25/2022
2/25/2022 11:59:59 PM
3/16/2022
03/11/2022
3/18/2022 11:59:59 PM
4/1/2022
03/25/2022
3/25/2022 11:59:59 PM
5/7/2022
05/06/2022
5/6/2022 11:59:59 PM
5/16/2022
05/13/2022
5/13/2022 11:59:59 PM
6/15/2022
06/10/2022
6/10/2022 11:59:59 PM
6/26/2022
06/24/2022
6/24/2022 11:59:59 PM
7/9/2022
07/08/2022
7/8/2022 11:59:59 PM
7/22/2022
07/15/2022
7/15/2022 11:59:59 PM
7/23/2022
07/22/2022
7/22/2022 11:59:59 PM
7/27/2022
07/22/2022
7/22/2022 11:59:59 PM
8/2/2022
07/29/2022
7/29/2022 11:59:59 PM
8/8/2022
08/05/2022
8/5/2022 11:59:59 PM
8/19/2022
08/12/2022
8/12/2022 11:59:59 PM
9/26/2022
09/23/2022
9/23/2022 11:59:59 PM
10/14/2022
10/07/2022
10/7/2022 11:59:59 PM
10/29/2022
10/28/2022
10/28/2022 11:59:59 PM
In questo caso, poiché è stato utilizzato un valore period_no di -1 come argomento di offset nella funzione lunarweekend(), la funzione identifica innanzitutto la settimana lunare in cui sono avvenute le transazioni. Si sposta poi una settimana prima e identifica il millisecondo finale di quella settimana lunare.
La transazione 8189 è avvenuta il 19 gennaio. La funzione lunarweekend() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, la settimana lunare precedente è iniziata l'8 gennaio ed è terminata il 14 gennaio alle 23:59:59; questo è il valore restituito per il campo previous_lunar_week_end.
Esempio 3 – first_week_day
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. In questo esempio, abbiamo impostato che le settimane lunari inizino il 5 gennaio.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
end_of_week
end_of_week_timestamp
Tabella dei risultati
date
end_of_week
end_of_week_timestamp
1/7/2022
01/11/2022
1/11/2022 11:59:59 PM
1/19/2022
01/25/2022
1/25/2022 11:59:59 PM
2/5/2022
02/08/2022
2/8/2022 11:59:59 PM
2/28/2022
03/01/2022
3/1/2022 11:59:59 PM
3/16/2022
03/22/2022
3/22/2022 11:59:59 PM
4/1/2022
04/05/2022
4/5/2022 11:59:59 PM
5/7/2022
05/10/2022
5/10/2022 11:59:59 PM
5/16/2022
05/17/2022
5/17/2022 11:59:59 PM
6/15/2022
06/21/2022
6/21/2022 11:59:59 PM
6/26/2022
06/28/2022
6/28/2022 11:59:59 PM
7/9/2022
07/12/2022
7/12/2022 11:59:59 PM
7/22/2022
07/26/2022
7/26/2022 11:59:59 PM
7/23/2022
07/26/2022
7/26/2022 11:59:59 PM
7/27/2022
08/02/2022
8/2/2022 11:59:59 PM
8/2/2022
08/02/2022
8/2/2022 11:59:59 PM
8/8/2022
08/09/2022
8/9/2022 11:59:59 PM
8/19/2022
08/23/2022
8/23/2022 11:59:59 PM
9/26/2022
09/27/2022
9/27/2022 11:59:59 PM
10/14/2022
10/18/2022
10/18/2022 11:59:59 PM
10/29/2022
11/01/2022
11/1/2022 11:59:59 PM
In questo caso, poiché nella funzione lunarweekend() viene utilizzato l'argomento first_week_date di 4, l'inizio dell'anno viene spostato dal 1° al 5 gennaio.
La transazione 8189 è avvenuta il 19 gennaio. Poiché le settimane lunari iniziano il 5 gennaio, la funzione lunarweekend() identifica che la settimana lunare contenente il 19 gennaio inizia anch'essa il 19 gennaio. Pertanto, la fine di quella settimana lunare avviene il 25 gennaio alle 23:59:59; questo è il valore restituito per il campo end_of_week.
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 restituisce un timestamp per la fine della settimana lunare in cui sono avvenute le transazioni 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.
Aggiungere le seguenti misure:
=lunarweekend(date)
=timestamp(lunarweekend(date))
Tabella dei risultati
date
=lunarweekend(date)
=timestamp(lunarweekend(date))
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
La misura end_of_week viene creata nell'oggetto grafico mediante l'utilizzo della funzione lunarweekend() e trasferendo il campo date come argomento della funzione.
La funzione lunarweekend() identifica in quale settimana lunare cade il valore della data, restituendo un timestamp per l'ultimo millisecondo di quella settimana.
La transazione 8189 è avvenuta il 19 gennaio. La funzione lunarweekend() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, il valore end_of_week per questa transazione restituisce l'ultimo millisecondo della settimana lunare, ovvero il 21 gennaio alle 23:59:59.
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 Employee_Expenses.
Gli ID dei dipendenti, il nome del dipendente e le spese medie giornaliere dichiarate da ciascun dipendente.
L'utente finale desidera un oggetto grafico che visualizzi, in base all'ID dipendente e al nome del dipendente, le richieste di rimborso spese stimate ancora da sostenere per il resto della settimana lunare.
La funzionelunarkweekend(), utilizzando come unico argomento la data odierna, restituisce la data finale della settimana lunare corrente. Quindi, sottraendo la data odierna dalla data di fine settimana lunare, l'espressione restituisce il numero di giorni rimanenti di questa settimana.
Questo valore viene quindi moltiplicato per la media delle richieste di rimborso spese giornaliere di ciascun dipendente per calcolare il valore stimato delle richieste che ogni dipendente dovrebbe presentare durante il periodo rimanente della settimana lunare.
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!