lunarweekstart - funzione dello script e del grafico
Questa funzione restituisce un valore corrispondente a un indicatore temporale del primo millisecondo del primo 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.
La funzione lunarweekstart() determina la settimana lunare in cui cade date. Quindi, restituisce un timestamp, nel formato data, per il primo 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 lunarweekstart() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione della settimana trascorsa finora. A differenza della funzione weekstart(), all'inizio di ogni nuovo anno solare, la settimana inizia il 1° gennaio e ogni settimana successiva inizia sette giorni dopo. La funzione lunarweekstart() non è interessata dalla variabile di sistema FirstWeekDay.
Ad esempio, lunarweekstart() è utilizzabile per calcolare gli interessi accumulati in una settimana fino ad oggi.
Esempi di funzioni
Esempio
Risultato
lunarweekstart('01/12/2013')
Restituisce 01/08/2013.
lunarweekstart('01/12/2013', -1)
Restituisce 01/01/2013.
lunarweekstart('01/12/2013', 0, 1
)
Restituisce 01/09/2013, perché l'impostazione first_week_day su 1 significa che l'inizio dell'anno è stato cambiato in 01/02/2013.
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, start_of_week, che restituisce un timestamp per l'inizio 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
start_of_week
start_of_week_timestamp
Tabella dei risultati
date
start_of_week
start_of_week_timestamp
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
Il campo start_of_week viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione lunarweekstart() e trasferendo il campo date come argomento della funzione.
La funzione lunarweekstart() identifica la settimana lunare in cui cade la data, restituendo un timestamp per il primo millisecondo di quella settimana.
La transazione 8189 è avvenuta il 19 gennaio. La funzione lunarweekstart() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, il valore start_of_week per questa transazione restituisce il primo millisecondo di quel giorno, ovvero il 15 gennaio alle 12:00:00 AM.
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_start, che restituisce un timestamp per l'inizio della settimana lunare prima che avvenga la transazione.
In questo caso, poiché il valore period_no di -1 è stato utilizzato come argomento offset nella funzione lunarweekstart(), la funzione per prima cosa identifica la settimana lunare in cui avvengono le transazioni. Si sposta poi una settimana prima e identifica il primo millisecondo di quella settimana lunare.
La transazione 8189 è avvenuta il 19 gennaio. La funzione lunarweekstart() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, la settimana lunare precedente è iniziata l'8 gennaio alle 12:00:00; questo è il valore restituito per il campo previous_lunar_week_start.
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
start_of_week
start_of_week_timestamp
Tabella dei risultati
date
start_of_week
start_of_week_timestamp
1/7/2022
01/05/2022
1/5/2022 12:00:00 AM
1/19/2022
01/19/2022
1/19/2022 12:00:00 AM
2/5/2022
02/02/2022
2/2/2022 12:00:00 AM
2/28/2022
02/23/2022
2/23/2022 12:00:00 AM
3/16/2022
03/16/2022
3/16/2022 12:00:00 AM
4/1/2022
03/30/2022
3/30/2022 12:00:00 AM
5/7/2022
05/04/2022
5/4/2022 12:00:00 AM
5/16/2022
05/11/2022
5/11/2022 12:00:00 AM
6/15/2022
06/15/2022
6/15/2022 12:00:00 AM
6/26/2022
06/22/2022
6/22/2022 12:00:00 AM
7/9/2022
07/06/2022
7/6/2022 12:00:00 AM
7/22/2022
07/20/2022
7/20/2022 12:00:00 AM
7/23/2022
07/20/2022
7/20/2022 12:00:00 AM
7/27/2022
07/27/2022
7/27/2022 12:00:00 AM
8/2/2022
07/27/2022
7/27/2022 12:00:00 AM
8/8/2022
08/03/2022
8/3/2022 12:00:00 AM
8/19/2022
08/17/2022
8/17/2022 12:00:00 AM
9/26/2022
09/21/2022
9/21/2022 12:00:00 AM
10/14/2022
10/12/2022
10/12/2022 12:00:00 AM
10/29/2022
10/26/2022
10/26/2022 12:00:00 AM
In questo caso, poiché nella funzione lunarweekstart() 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 lunarweekstart() identifica che la settimana lunare contenente il 19 gennaio inizia anch'essa il 19 gennaio alle 12:00:00 AM. Pertanto, ciò corrisponde al valore restituito per il campo start_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 l'inizio 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:
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
Tabella dei risultati
date
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
La misura start_of_week viene creata nell'oggetto grafico mediante l'utilizzo della funzione lunarweekstart() e trasferendo il campo data come argomento della funzione.
La funzione lunarweekstart() 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 lunarweekstart() identifica che la settimana lunare inizia il 15 gennaio. Pertanto, il valore start_of_week per questa transazione corrisponde al primo millisecondo di quel giorno, ovvero il 15 gennaio alle 12:00:00 AM.
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 contenente un insieme di saldi di prestiti, caricato in una tabella denominata Loans.
Dati costituiti dagli ID dei prestiti, dal saldo all'inizio della settimana e dal tasso di interesse semplice annuo applicato a ciascun prestito.
L'utente finale desidera un oggetto grafico che mostri, in base all'ID del prestito, gli interessi correnti che sono stati maturati per ciascun prestito nella settimana in corso.
Utilizzando la data odierna come unico argomento, la funzione lunarweekstart() restituisce la data di inizio dell'anno corrente. Sottraendo tale risultato dalla data corrente, l'espressione restituisce il numero di giorni trascorsi fino ad ora questa settimana.
Questo valore viene quindi moltiplicato per il tasso di interesse e diviso per 365, per restituire il tasso di interesse effettivo incorso per questo periodo. Il risultato viene poi moltiplicato per il saldo iniziale del prestito per ottenere gli interessi maturati fino a questo momento della settimana.
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!