Questa funzione restituisce un numero intero che rappresenta il numero della settimana in base allo standard ISO 8601. Il numero della settimana viene calcolato a partire dall'interpretazione della data dell'espressione in base all'interpretazione numerica standard.
Il conteggio del numero di settimane inizia il 1° gennaio (questo perché l'impostazione predefinita Qlik Sense prevede l'uso di settimane parziali). La prima settimana termina il giorno precedente alla variabile di sistema FirstWeekDay, indipendentemente dal numero di giorni trascorsi in quella settimana. La variabile di sistema FirstWeekDay può essere sostituita all'interno della funzione week() dall'argomento first_week_day.
La funzione week() consente inoltre di specificare se utilizzare settimane parziali o intere tramite l'argomento broken_weeks. Se si utilizza la funzionalità di settimana parziale, la settimana 1 deve contenere un certo numero di giorni di gennaio, definito dalla variabile di sistema ReferenceDay. Pertanto, la settimana 1 può potenzialmente iniziare a dicembre o, in alternativa, le settimane 52 o 53 possono continuare a gennaio. Infine, l'argomento reference_day consente alla funzione di sovrascrivere la variabile di sistema ReferenceDay.
A differenza della funzione weekname(), la funzione week() non restituisce anche il valore dell'anno. Ciò consente di effettuare aggregazioni confrontando le settimane tra i vari anni.
Sono quattro gli argomenti che possono essere utilizzati all'interno di questa funzione.
Argomento n. 1: timestamp
La data da valutare come timestamp o espressione che si risolve in un timestamp, per convertire, ad esempio '2012-10-12'.
Argomento n. 2: first_week_day
Se non si specifica first_week_day, il valore della variabile FirstWeekDay verrà utilizzato come primo giorno della settimana.
Se si desidera utilizzare un altro giorno come primo giorno della settimana, impostare first_week_day su:
0 per lunedì
1 per martedì
2 per mercoledì
3 per giovedì
4 per venerdì
5 per sabato
6 per domenica
Il numero intero restituito dalla funzione utilizzerà ora il primo giorno della settimana impostato con first_week_day.
Se non si specificareference_day, il valore della variabile ReferenceDay verrà utilizzato per definire quale giorno di gennaio impostare come giorno di riferimento per definire la settimana 1. Per impostazione predefinita, le funzioni Qlik Sense utilizzano 4 come giorno di riferimento. Questo significa che la settimana 1 deve contenere il 4 gennaio, vale a dire che la settimana 1 deve sempre contenere 4 quattro giorni di gennaio.
Per impostare un giorno di riferimento differente, è possibile utilizzare i seguenti valori:
La funzione The week() è utile per confrontare le aggregazioni per settimane. Ad esempio, potrebbe essere usata se si desidera visualizzare le vendite totali dei prodotti in base alla settimana. La funzione week() viene preferita a weekname() quando l'utente desidera che il calcolo non utilizzi necessariamente le variabili di sistema BrokenWeeks, FirstWeekDay o ReferenceDay dell'applicazione.
Inoltre, la funzione week() viene scelta quando si desidera effettuare un confronto tra più anni. Utilizzando la funzione week(), l'utente può creare una propria combinazione di queste variabili da utilizzare nei casi in cui viene utilizzata la funzione.
Queste dimensioni possono essere sia create nello script di caricamento, utilizzando la funzione per creare un campo in una tabella del Calendario principale, sia utilizzate direttamente in un grafico come dimensione calcolata.
Esempi di funzioni
Esempio
Risultato
week(
'10/12/2012')
Restituisce 41.
week(
'35648')
Restituisce 32, perché 35648 = 08/06/1997.
week('10/12/2012', 0, 1)
Restituisce 42.
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 - Variabili di sistema predefinite
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 l'ultima settimana del 2021 e le prime due settimane del 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, week_number, che restituisce l'anno e il numero di settimana in cui sono avvenute le transazioni.
La creazione di un campo chiamato week_day, che mostra il valore del giorno della settimana per ogni data di transazione.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
id
date
week_day
week_number
Tabella dei risultati
id
data
week_day
week_number
8183
12/27/2021
Mon
53
8184
12/28/2021
Tue
53
8185
12/29/2021
Wed
53
8186
12/30/2021
Thu
53
8187
12/31/2021
Fri
53
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
2
8190
01/03/2022
Mon
2
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
3
8197
01/10/2022
Mon
3
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
Il campo week_number viene creato nell'istruzione LOAD precedente mediante l'uso della funzione week() e trasferendo il campo date come argomento della funzione.
Non vengono passati altri parametri alla funzione e quindi sono attive le seguenti variabili predefinite che influenzano la funzione week():
BrokenWeeks: Il conteggio delle settimane inizia il 1° gennaio
FirstWeekDay: Il primo giorno della settimana è la domenica
Poiché l'applicazione utilizza la variabile di sistema predefinita BrokenWeeks, la settimana 1 inizia il 1° gennaio, un sabato.
A causa della variabile di sistema FirstWeekDay predefinita, le settimane iniziano di domenica. La prima domenica dopo il 1° gennaio è il 2 gennaio, quando inizia la seconda settimana.
Esempio 2 – 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:
La creazione di un campo, week_number, che restituisce l'anno e il numero di settimana in cui sono avvenute le transazioni.
La creazione di un campo chiamato week_day, che mostra il valore del giorno della settimana per ogni data di transazione.
In questo esempio, vogliamo impostare l'inizio della settimana lavorativa al martedì.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
id
date
week_day
week_number
Tabella dei risultati
id
data
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
53
8185
12/29/2021
Wed
53
8186
12/30/2021
Thu
53
8187
12/31/2021
Fri
53
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
L'applicazione utilizza ancora le settimane parziali. Tuttavia, l'argomento first_week_day è stato impostato a 1 nella funzione week(). In questo modo si imposta il primo giorno della settimana come martedì.
L'applicazione utilizza la variabile di sistema predefinita BrokenWeeks, la settimana 1 inizia il 1° gennaio, un sabato.
L'argomento first_week_day della funzione week() imposta il primo giorno della settimana a un martedì. Pertanto, la settimana 53 inizia il 28 dicembre 2021.
Tuttavia, poiché la funzione utilizza ancora le settimane parziali, la settimana 1 sarà di soli due giorni, poiché il primo martedì dopo il 1° gennaio è il 3 gennaio.
Esempio 3 – unbroken_weeks
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.
In questo esempio, utilizziamo settimane intere.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
id
date
week_day
week_number
Tabella dei risultati
id
data
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
52
8185
12/29/2021
Wed
52
8186
12/30/2021
Thu
52
8187
12/31/2021
Fri
52
8188
01/01/2022
Sat
52
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
1
8192
01/05/2022
Wed
1
8193
01/06/2022
Thu
1
8194
01/07/2022
Fri
1
8195
01/08/2022
Sat
1
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
2
8199
01/12/2022
Wed
2
8200
01/13/2022
Thu
2
8201
01/14/2022
Fri
2
Il parametro first_week_date è impostato su 1, rendendo il martedì il primo giorno della settimana. Il parametro broken_weeks viene impostato a 0, forzando la funzione a utilizzare settimane intere. Infine, il terzo parametro imposta il reference_day su 2.
Il parametro first_week_date è impostato su 6, rendendo la domenica il primo giorno della settimana. Il parametro broken_weeks è impostato su 0, obbligando la funzione a utilizzare settimane intere.
Utilizzando le settimane intere, la settimana 1 non inizia necessariamente il 1° gennaio, ma deve avere un minimo di quattro giorni. Pertanto, nel set di dati, la settimana 52 si conclude sabato 1° gennaio 2022. La settimana 1 inizia con la variabile di sistema FirstWeekDay, domenica 2 gennaio. Questa settimana si concluderà il sabato successivo, l'8 gennaio.
Esempio 4 – reference_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 terzo esempio.
La creazione di un campo, week_number, che restituisce l'anno e il numero di settimana in cui sono avvenute le transazioni.
La creazione di un campo chiamato week_day, che mostra il valore del giorno della settimana per ogni data di transazione.
Inoltre, devono essere soddisfatte le seguenti condizioni:
La settimana lavorativa inizia di martedì.
L'azienda utilizza settimane intere.
Il valore reference_day è 2. In altre parole, il numero minimo di giorni a gennaio nella settimana 1 sarà 2.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
id
date
week_day
week_number
Tabella dei risultati
id
data
week_day
week_number
8183
12/27/2021
Mon
52
8184
12/28/2021
Tue
1
8185
12/29/2021
Wed
1
8186
12/30/2021
Thu
1
8187
12/31/2021
Fri
1
8188
01/01/2022
Sat
1
8189
01/02/2022
Sun
1
8190
01/03/2022
Mon
1
8191
01/04/2022
Tue
2
8192
01/05/2022
Wed
2
8193
01/06/2022
Thu
2
8194
01/07/2022
Fri
2
8195
01/08/2022
Sat
2
8196
01/09/2022
Sun
2
8197
01/10/2022
Mon
2
8198
01/11/2022
Tue
3
8199
01/12/2022
Wed
3
8200
01/13/2022
Thu
3
8201
01/14/2022
Fri
3
Il parametro first_week_date è impostato su 1, rendendo il martedì il primo giorno della settimana. Il parametro broken_weeks è impostato su 0, obbligando la funzione a utilizzare settimane intere. Infine, il terzo parametro imposta il parametro reference_day a 2.
Con la funzione che utilizza settimane intere e un valore reference_day di 2 come parametro, la settimana 1 deve includere solo due giorni di gennaio. Poiché il primo giorno feriale è il martedì, la settimana 1 inizia il 28 dicembre 2021 e si conclude lunedì 3 gennaio 2022.
Esempio 5 – 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 il numero della settimana viene creato come misura in un oggetto grafico.
Caricare i dati e aprire un foglio. Creare una nuova tabella.
Aggiungere i seguenti campi come dimensioni:
id
date
Quindi, creare la seguente misura:
=week (date)
Creare una misura , week_day che mostri il valore del giorno della settimana per ogni data di transazione:
=weekday(date)
Tabella dei risultati
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Mon
8184
12/28/2021
53
Tue
8185
12/29/2021
53
Wed
8186
12/30/2021
53
Thu
8187
12/31/2021
53
Fri
8188
01/01/2022
1
Sat
8189
01/02/2022
2
Sun
8190
01/03/2022
2
Mon
8191
01/04/2022
2
Tue
8192
01/05/2022
2
Wed
8193
01/06/2022
2
Thu
8194
01/07/2022
2
Fri
8195
01/08/2022
2
Sat
8196
01/09/2022
3
Sun
8197
01/10/2022
3
Mon
8198
01/11/2022
3
Tue
8199
01/12/2022
3
Wed
8200
01/13/2022
3
Thu
8201
01/14/2022
3
Fri
Il campo week_number viene creato nell'istruzione LOAD precedente mediante l'uso della funzione week() e trasferendo il campo date come argomento della funzione.
Non vengono passati altri parametri alla funzione e quindi sono attive le seguenti variabili predefinite che influenzano la funzione week():
BrokenWeeks: Il conteggio delle settimane inizia il 1° gennaio
FirstWeekDay: Il primo giorno della settimana è la domenica
Poiché l'applicazione utilizza la variabile di sistema predefinita BrokenWeeks, la settimana 1 inizia il 1° gennaio, un sabato.
A causa della variabile di sistema FirstWeekDay predefinita, le settimane iniziano di domenica. La prima domenica dopo il 1° gennaio è il 2 gennaio, quando inizia la seconda settimana.
Esempio 6 – 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 transazioni per l'ultima settimana del 2019 e le prime due settimane del 2020 caricato in una tabella denominata Transactions.
Il campo della data fornito nel formato della variabile di sistema DateFormat (MM/GG/AAAA).
L'applicazione utilizza principalmente le settimane parziali nel suo dashboard. Tuttavia, l'utente finale desidera un oggetto grafico che presenti il totale delle vendite per settimana utilizzando settimane intere. Il giorno di riferimento dovrebbe essere il 2 gennaio, con le settimane che iniziano di martedì. Questo può essere ottenuto anche quando la dimensione non è disponibile nel modello dati, utilizzando la funzione week() come dimensione calcolata nel grafico.
Caricare i dati e aprire un foglio. Creare una nuova tabella.
Creare la seguente dimensione calcolata:
=week(date)
Quindi, creare la seguente misura di aggregazione:
=sum(amount)
Impostare la Formattazione numero della misura su Denaro.
Selezionare il menu Ordinamento e, per la dimensione calcolata, rimuovere l'ordinamento personalizzato.
Deselezionare le opzioni Ordina per numero e Ordina alfabeticamente.
Tabella dei risultati
week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
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!