weekend - 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. Il formato di output predefinito sarà il formato DateFormat impostato nello script.
Sintassi:
WeekEnd(date [, period_no[, first_week_day]])
Tipo di dati restituiti: duale
In altre parole, la funzione weekend() determina in quale settimana cade la data. Quindi, restituisce un timestamp, nel formato data, per l'ultimo millisecondo di quella settimana. Il primo giorno della settimana è determinato dalla variabile ambientale FirstWeekDay. Tuttavia, questo può essere sostituito dall'argomento first_week_day della funzione weekend().
Argomento | Descrizione |
---|---|
date | La data o la data e ora da valutare. |
period_no | shift è un numero intero, in cui il valore 0 indica la settimana che contiene date. I valori negativi di shift indicano le settimane precedenti, mentre i valori positivi indicano le settimane successive. |
first_week_day |
Specifica il giorno di inizio della settimana. Se omesso, viene utilizzato il valore della variabile FirstWeekDay. I valori possibili per first_week_day sono 0 per lunedì, 1 per martedì, 2 per mercoledì, 3 per giovedì, 4 per venerdì, 5 per sabato e 6 per domenica. Per maggiori informazioni sulle variabili di sistema, vedere FirstWeekDay. |
broken_weeks |
Se non si specificabroken_weeks, il valore della variabile BrokenWeeks verrà utilizzato per definire se le settimane sono interrotte o meno. Per maggiori informazioni sulle variabili di sistema, vedere BrokenWeeks. |
Casi di utilizzo
La funzione weekend() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi i giorni rimanenti della settimana per la data specificata. Ad esempio, potrebbe essere utilizzata se un utente desidera calcolare il totale degli interessi non ancora maturati durante la settimana.
Esempio | Risultato |
---|---|
weekend('01/10/2013') | Restituisce 01/12/2013 23:59:59. |
weekend('01/10/2013', -1) | Restituisce 01/05/2013 23:59:59.. |
weekend('01/10/2013', 0, 1) | Restituisce 01/14/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 – Esempio di base
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 in cui sono avvenute le transazioni.
Script di caricamento
SET FirstWeekDay=6;
Transactions:
Load
*,
weekend(date) as end_of_week,
timestamp(weekend(date)) as end_of_week_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
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
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/08/2022 | 1/8/2022 11:59:59 PM |
1/19/2022 | 01/22/2022 | 1/22/2022 11:59:59 PM |
2/5/2022 | 02/05/2022 | 2/5/2022 11:59:59 PM |
2/28/2022 | 03/05/2022 | 3/5/2022 11:59:59 PM |
3/16/2022 | 03/19/2022 | 3/19/2022 11:59:59 PM |
4/1/2022 | 04/02/2022 | 4/2/2022 11:59:59 PM |
5/7/2022 | 05/07/2022 | 5/7/2022 11:59:59 PM |
5/16/2022 | 05/21/2022 | 5/21/2022 11:59:59 PM |
6/15/2022 | 06/18/2022 | 6/18/2022 11:59:59 PM |
6/26/2022 | 07/02/2022 | 7/2/2022 11:59:59 PM |
7/9/2022 | 07/09/2022 | 7/9/2022 11:59:59 PM |
7/22/2022 | 07/23/2022 | 7/23/2022 11:59:59 PM |
7/23/2022 | 07/23/2022 | 7/23/2022 11:59:59 PM |
7/27/2022 | 07/30/2022 | 7/30/2022 11:59:59 PM |
8/2/2022 | 08/06/2022 | 8/6/2022 11:59:59 PM |
8/8/2022 | 08/13/2022 | 8/13/2022 11:59:59 PM |
8/19/2022 | 08/20/2022 | 8/20/2022 11:59:59 PM |
9/26/2022 | 10/01/2022 | 10/1/2022 11:59:59 PM |
10/14/2022 | 10/15/2022 | 10/15/2022 11:59:59 PM |
10/29/2022 | 10/29/2022 | 10/29/2022 11:59:59 PM |
Il campo end_of_week viene creato nell'istruzione LOAD precedente mediante l'uso della funzione weekend() e trasferendo il campo data come argomento della funzione.
La funzione weekend() identifica in quale settimana rientra il valore della data e restituisce un timestamp per il primo millisecondo di quella settimana.
La transazione 8191 è avvenuta il 5 febbraio. La variabile di sistema FirstWeekDay imposta il primo giorno della settimana come domenica. La funzione weekend() identifica che il primo sabato dopo il 5 febbraio - e quindi la fine della settimana - era il 5 febbraio. Pertanto, il valore end_of_week per questa transazione restituisce l'ultimo millisecondo di quel giorno, ovvero il 5 febbraio 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_week_end, che restituisce il timestamp dell'inizio della settimana precedente la transazione.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekend(date,-1) as previous_week_end,
timestamp(weekend(date,-1)) as previous_week_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
date
-
previous_week_end
-
previous_week_end_timestamp
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/01/2022 | 1/1/2022 11:59:59 PM |
1/19/2022 | 01/15/2022 | 1/15/2022 11:59:59 PM |
2/5/2022 | 01/29/2022 | 1/29/2022 11:59:59 PM |
2/28/2022 | 02/26/2022 | 2/26/2022 11:59:59 PM |
3/16/2022 | 03/12/2022 | 3/12/2022 11:59:59 PM |
4/1/2022 | 03/26/2022 | 3/26/2022 11:59:59 PM |
5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
5/16/2022 | 05/14/2022 | 5/14/2022 11:59:59 PM |
6/15/2022 | 06/11/2022 | 6/11/2022 11:59:59 PM |
6/26/2022 | 06/25/2022 | 6/25/2022 11:59:59 PM |
7/9/2022 | 07/02/2022 | 7/2/2022 11:59:59 PM |
7/22/2022 | 07/16/2022 | 7/16/2022 11:59:59 PM |
7/23/2022 | 07/16/2022 | 7/16/2022 11:59:59 PM |
7/27/2022 | 07/23/2022 | 7/23/2022 11:59:59 PM |
8/2/2022 | 07/30/2022 | 7/30/2022 11:59:59 PM |
8/8/2022 | 08/06/2022 | 8/6/2022 11:59:59 PM |
8/19/2022 | 08/13/2022 | 8/13/2022 11:59:59 PM |
9/26/2022 | 09/24/2022 | 9/24/2022 11:59:59 PM |
10/14/2022 | 10/08/2022 | 10/8/2022 11:59:59 PM |
10/29/2022 | 10/22/2022 | 10/22/2022 11:59:59 PM |
In questo caso, poiché il valore period_no di -1 è stato utilizzato come argomento offset nella funzione weekend(), la funzione per prima cosa identifica la settimana in cui sono avvenute le transazioni. Quindi, cerca la settimana precedente e identifica l'ultimo millisecondo di quella settimana.
La transazione 8196 è avvenuta il 15 giugno. La funzione weekend() identifica che la settimana è iniziata il 12 giugno. Pertanto, la settimana precedente termina l'11 giugno alle 11:59:59 PM; ciò rappresenta il valore restituito per il campo previous_week_end.
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, in questo esempio, dobbiamo impostare il martedì come primo giorno della settimana lavorativa.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekend(date,0,1) as end_of_week,
timestamp(weekend(date,0,1)) as end_of_week_timestamp,
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
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
date | end_of_week | end_of_week_timestamp |
---|---|---|
1/7/2022 | 01/10/2022 | 1/10/2022 11:59:59 PM |
1/19/2022 | 01/24/2022 | 1/24/2022 11:59:59 PM |
2/5/2022 | 02/07/2022 | 2/7/2022 11:59:59 PM |
2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
3/16/2022 | 03/21/2022 | 3/21/2022 11:59:59 PM |
4/1/2022 | 04/04/2022 | 4/4/2022 11:59:59 PM |
5/7/2022 | 05/09/2022 | 5/9/2022 11:59:59 PM |
5/16/2022 | 05/16/2022 | 5/16/2022 11:59:59 PM |
6/15/2022 | 06/20/2022 | 6/20/2022 11:59:59 PM |
6/26/2022 | 06/27/2022 | 6/27/2022 11:59:59 PM |
7/9/2022 | 07/11/2022 | 7/11/2022 11:59:59 PM |
7/22/2022 | 07/25/2022 | 7/25/2022 11:59:59 PM |
7/23/2022 | 07/25/2022 | 7/25/2022 11:59:59 PM |
7/27/2022 | 08/01/2022 | 8/1/2022 11:59:59 PM |
8/2/2022 | 08/08/2022 | 8/8/2022 11:59:59 PM |
8/8/2022 | 08/08/2022 | 8/8/2022 11:59:59 PM |
8/19/2022 | 08/22/2022 | 8/22/2022 11:59:59 PM |
9/26/2022 | 09/26/2022 | 9/26/2022 11:59:59 PM |
10/14/2022 | 10/17/2022 | 10/17/2022 11:59:59 PM |
10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
In questa istanza, dato che l'argomento first_week_date di 1 è utilizzato nella funzione weekend(), imposta il primo giorno della settimana a martedì.
La transazione 8191 è avvenuta il 5 febbraio. La funzione weekend() identifica che il primo lunedì successivo a questa data - e quindi la fine della settimana e il valore restituito - era il 6 febbraio alle 23:59:59.
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 in cui sono avvenute le transazioni viene creato come misura in un oggetto grafico dell'applicazione.
Script di caricamento
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.
Per calcolare l'inizio della settimana in cui avviene una transazione, aggiungere le seguenti misure:
-
=weekend(date)
-
=timestamp(weekend(date))
date | =weekend(date) | =timestamp(weekend(date)) |
---|---|---|
1/7/2022 | 01/08/2022 | 1/8/2022 11:59:59 PM |
1/19/2022 | 01/22/2022 | 1/22/2022 11:59:59 PM |
2/5/2022 | 02/05/2022 | 2/5/2022 11:59:59 PM |
2/28/2022 | 03/05/2022 | 3/5/2022 11:59:59 PM |
3/16/2022 | 03/19/2022 | 3/19/2022 11:59:59 PM |
4/1/2022 | 04/02/2022 | 4/2/2022 11:59:59 PM |
5/7/2022 | 05/07/2022 | 5/7/2022 11:59:59 PM |
5/16/2022 | 05/21/2022 | 5/21/2022 11:59:59 PM |
6/15/2022 | 06/18/2022 | 6/18/2022 11:59:59 PM |
6/26/2022 | 07/02/2022 | 7/2/2022 11:59:59 PM |
7/9/2022 | 07/09/2022 | 7/9/2022 11:59:59 PM |
7/22/2022 | 07/23/2022 | 7/23/2022 11:59:59 PM |
7/23/2022 | 07/23/2022 | 7/23/2022 11:59:59 PM |
7/27/2022 | 07/30/2022 | 7/30/2022 11:59:59 PM |
8/2/2022 | 08/06/2022 | 8/6/2022 11:59:59 PM |
8/8/2022 | 08/13/2022 | 8/13/2022 11:59:59 PM |
8/19/2022 | 08/20/2022 | 8/20/2022 11:59:59 PM |
9/26/2022 | 10/01/2022 | 10/1/2022 11:59:59 PM |
10/14/2022 | 10/15/2022 | 10/15/2022 11:59:59 PM |
10/29/2022 | 10/29/2022 | 10/29/2022 11:59:59 PM |
La misura end_of_week viene creata nell'oggetto grafico mediante l'utilizzo della funzione weekend() e trasferendo il campo data come argomento della funzione. La funzione weekend() identifica in quale settimana cade il valore della data, restituendo un timestamp per l'ultimo millisecondo di quella settimana.
La transazione 8191 è avvenuta il 5 febbraio. La variabile di sistema FirstWeekDay imposta il primo giorno della settimana come domenica. La funzione weekend() identifica che il primo sabato dopo il 5 febbraio - e quindi la fine della settimana - era il 5 febbraio. Pertanto, il valore end_of_week per questa transazione restituisce l'ultimo millisecondo di quel giorno, ovvero il 5 febbraio 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.
-
I dati consistono negli ID dei dipendenti, nei nomi dei dipendenti e nelle richieste di rimborso delle spese medie giornaliere di 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.
Script di caricamento
Employee_Expenses:
Load
*
Inline
[
employee_id,employee_name,avg_daily_claim
182,Mark, $15
183,Deryck, $12.5
184,Dexter, $12.5
185,Sydney,$27
186,Agatha,$18
];
Risultati
Procedere come indicato di seguito:
-
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
employee_id
-
employee_name
-
-
Quindi, creare una misura per calcolare gli interessi accumulati:
=(weekend(today(1))-today(1))*avg_daily_claim
-
Impostare la Formattazione numero della misura su Denaro.
employee_id | employee_name | =(weekend(today(1))-today(1))*avg_daily_claim |
---|---|---|
182 | Contrassegno | $90.00 |
183 | Deryck | $75.00 |
184 | Dexter | $75.00 |
185 | Sydney | $162.00 |
186 | Agatha | $108.00 |
La funzioneweekend(), utilizzando come unico argomento la data odierna, restituisce la data finale della settimana corrente. Quindi, sottraendo la data odierna dalla data di fine settimana, 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.