weekname - funzione dello script e del grafico
Questa funzione restituisce un valore che mostra l'anno e il numero della settimana con un valore numerico sottostante corrispondente a un indicatore temporale recante il primo millisecondo del primo giorno della settimana contenente date.
Sintassi:
WeekName(date[, period_no[,first_week_day]])
La funzione weekname() determina la settimana in cui cade la data e restituisce il numero della settimana e l'anno per quella settimana. Il primo giorno della settimana è determinato dalla variabile di sistema FirstWeekDay. Tuttavia, è possibile anche modificare il primo giorno della settimana utilizzando l'argomento first_week_day nella funzione weekname().
Per impostazione predefinita, le applicazioni Qlik Sense utilizzano settimane interrotte (definite dalla variabile di sistema BrokenWeeks), pertanto il conteggio del numero della settimana inizia il 1 gennaio e termina il giorno precedente alla variabile di sistema FirstWeekDay, indipendentemente dal numero di giorni trascorsi.
Tuttavia, se l'applicazione utilizza settimane ininterrotte, la settimana 1 può iniziare nell'anno precedente o nei primi giorni di gennaio. Dipende da come si utilizzano le variabili di sistema ReferenceDay e FirstWeekDay.
Casi di utilizzo
La funzione weekname() è utile per confrontare le aggregazioni per settimane.
Ad esempio, può essere usata se si desidera visualizzare le vendite totali dei prodotti in base alla settimana. Per mantenere la coerenza con la variabile di ambiente BrokenWeeks nell'applicazione, utilizzare weekname() anziché lunarweekname(). Se l'applicazione utilizza settimane ininterrotte, la settimana 1 può contenere date di dicembre dell'anno precedente o escludere date di gennaio dell'anno in corso. Se l'applicazione utilizza settimane interrotte, la settimana 1 può contenere meno di sette giorni.
Tipo di dati restituiti: duale
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. |
È possibile utilizzare i seguenti valori per impostare il giorno in cui inizia la settimana nell'argomento first_week_day:
Giorno | Valore |
---|---|
Lunedì | 0 |
Tuesday | 1 |
Wednesday | 2 |
Thursday | 3 |
Friday | 4 |
Saturday | 5 |
Sunday | 6 |
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 | Risultato |
---|---|
weekname('01/12/2013') | Restituisce 2013/02. |
weekname('01/12/2013', -1) | Returns 2013/01. |
weekname('01/12/2013', -1) | Restituisce 2013/02. |
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:
-
una serie 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'.
-
La variabile di sistema DateFormat che è impostata sul formato MM/DD/YYYY.
-
La variabile di sistema BrokenWeeks che è impostata su 1.
-
La variabile di sistema FirstWeekDay che è impostata su 6.
-
Un'istruzione LOAD precedente che contiene i seguenti elementi:
-
La funzione weekday() che è impostata come campo, 'week_number', che restituisce il numero dell'anno e della settimana in cui sono state effettuate le transazioni.
-
La funzione weekname() che è impostata come campo denominato 'week_day', per mostrare il valore del giorno della settimana di ogni data di transazione.
-
Script di caricamento
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day,
Weekname(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
id | data | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Mon | 2021/53 |
8184 | 12/28/2021 | Tue | 2021/53 |
8185 | 12/29/2021 | Wed | 2021/53 |
8186 | 12/30/2021 | Thu | 2021/53 |
8187 | 12/31/2021 | Fri | 2021/53 |
8188 | 01/01/2022 | Sat | 2022/01 |
8189 | 01/02/2022 | Sun | 2022/02 |
8190 | 01/03/2022 | Mon | 2022/02 |
8191 | 01/04/2022 | Tue | 2022/02 |
8192 | 01/05/2022 | Wed | 2022/02 |
8193 | 01/06/2022 | Thu | 2022/02 |
8194 | 01/07/2022 | Fri | 2022/02 |
8195 | 01/08/2022 | Sat | 2022/02 |
8196 | 01/09/2022 | Sun | 2022/03 |
8197 | 01/10/2022 | Mon | 2022/03 |
8198 | 01/11/2022 | Tue | 2022/03 |
8199 | 01/12/2022 | Wed | 2022/03 |
8200 | 01/13/2022 | Thu | 2022/03 |
8201 | 01/14/2022 | Fri | 2022/03 |
Il campo 'week_number' viene creato nell'istruzione LOAD precedente mediante l'uso della funzione weekname() e trasferendo il campo data come argomento della funzione.
La funzione weekname() identifica inizialmente la settimana in cui rientra il valore della data e restituisce il conteggio del numero della settimana e l'anno in cui si verifica la transazione.
La variabile di sistema FirstWeekDay imposta la domenica come primo giorno della settimana. La variabile di sistema BrokenWeeks imposta l'applicazione in modo che utilizzi le settimane interrotte, quindi la settimana 1 inizierà il 1 gennaio.
La settimana 1 inizia il 1 gennaio, che è un sabato, pertanto le transazioni che si verificano in questa data restituiscono il valore 2022/01 (l'anno e il numero della settimana).
Poiché l'applicazione utilizza settimane interrotte e il primo giorno della settimana è la domenica, le transazioni che si verificano dal 2 all'8 gennaio restituiscono il valore 2022/02 (settimana numero 2 nel 2022). Un esempio potrebbe essere la transazione 8192 avvenuta il 5 gennaio che restituisce il valore 2022/02 per il campo 'week_number'.
Esempio 2 – period_no
Panoramica
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, l'attività consiste nel creare un campo, 'previous_week_number', che restituisce l'anno e il numero della settimana precedente alla data in cui sono state eseguite le transazioni.
Aprire Editor caricamento dati, quindi aggiungere il seguente script di caricamento in una nuova scheda.
Script di caricamento
SET BrokenWeeks=1;
SET FirstWeekDay=6;
Transactions:
Load
*,
weekname(date,-1) as previous_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
id | data | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Mon | 2021/52 |
8184 | 12/28/2021 | Tue | 2021/52 |
8185 | 12/29/2021 | Wed | 2021/52 |
8186 | 12/30/2021 | Thu | 2021/52 |
8187 | 12/31/2021 | Fri | 2021/52 |
8188 | 01/01/2022 | Sat | 2021/52 |
8189 | 01/02/2022 | Sun | 2021/53 |
8190 | 01/03/2022 | Mon | 2021/53 |
8191 | 01/04/2022 | Tue | 2021/53 |
8192 | 01/05/2022 | Wed | 2021/53 |
8193 | 01/06/2022 | Thu | 2021/53 |
8194 | 01/07/2022 | Fri | 2021/53 |
8195 | 01/08/2022 | Sat | 2022/01 |
8196 | 01/09/2022 | Sun | 2022/02 |
8197 | 01/10/2022 | Mon | 2022/02 |
8198 | 01/11/2022 | Tue | 2022/02 |
8199 | 01/12/2022 | Wed | 2022/02 |
8200 | 01/13/2022 | Thu | 2022/02 |
8201 | 01/14/2022 | Fri | 2022/02 |
Poiché il valore period_no di -1 è stato utilizzato come argomento offset nella funzione weekname(), la funzione per prima cosa identifica la settimana in cui avvengono le transazioni. Quindi, cerca la settimana precedente e identifica il primo millisecondo di quella settimana.
La transazione 8192 è avvenuta il 5 gennaio 2022. La funzione weekname() cerca una settimana prima, il 30 dicembre 2021, e restituisce il numero della settimana e l'anno per quella data – 2021/53.
Esempio 3 – first_week_day
Panoramica
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, la politica aziendale prevede che la settimana lavorativa inizi il martedì.
Aprire Editor caricamento dati, quindi aggiungere il seguente script di caricamento in una nuova scheda.
Script di caricamento
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekday(date) as week_day,
weekname(date,0,1) 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
id | data | week_day | week_number |
---|---|---|---|
8183 | 12/27/2021 | Mon | 2021/52 |
8184 | 12/28/2021 | Tue | 2021/53 |
8185 | 12/29/2021 | Wed | 2021/53 |
8186 | 12/30/2021 | Thu | 2021/53 |
8187 | 12/31/2021 | Fri | 2021/53 |
8188 | 01/01/2022 | Sat | 2022/01 |
8189 | 01/02/2022 | Sun | 2022/01 |
8190 | 01/03/2022 | Mon | 2022/01 |
8191 | 01/04/2022 | Tue | 2022/02 |
8192 | 01/05/2022 | Wed | 2022/02 |
8193 | 01/06/2022 | Thu | 2022/02 |
8194 | 01/07/2022 | Fri | 2022/02 |
8195 | 01/08/2022 | Sat | 2022/02 |
8196 | 01/09/2022 | Sun | 2022/02 |
8197 | 01/10/2022 | Mon | 2022/02 |
8198 | 01/11/2022 | Tue | 2022/03 |
8199 | 01/12/2022 | Wed | 2022/03 |
8200 | 01/13/2022 | Thu | 2022/03 |
8201 | 01/14/2022 | Fri | 2022/03 |
Poiché l'argomento first_week_date di 1 viene utilizzato nella funzione weekname(), il martedì viene utilizzato come primo giorno della settimana. La funzione determina quindi che la settimana 53 del 2021 è iniziata martedì 28 dicembre; e, a causa dell'utilizzo da parte dell'applicazione di settimane interrotte, la settimana 1 inizia il 1 gennaio 2022 e termina l'ultimo millisecondo di lunedì 3 gennaio 2022.
La transazione 8192 è avvenuta il 5 gennaio 2022. Pertanto, utilizzando il parametro first_week_day di martedì, la funzione weekname() restituisce il valore 2022/02 per il campo 'week_number'.
Esempio 4 - Esempio di oggetto grafico
Panoramica
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, il set di dati è invariato e viene caricato nell'applicazione. Il calcolo che restituisce il numero dell'anno per la fine settimana in cui sono avvenute le trasnazioni viene creato come misura in un oggetto grafico dell'applicazione.
Script di caricamento
SET BrokenWeeks=1;
Transactions:
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 (date)
Per calcolare l'inizio della settimana in cui è avvenuta una transazione, creare la seguente misura:
=weekname(date)
id | data | =weekday(date) | =weekname(date) |
---|---|---|---|
8183 | 12/27/2021 | Mon | 2021/53 |
8184 | 12/28/2021 | Tue | 2021/53 |
8185 | 12/29/2021 | Wed | 2021/53 |
8186 | 12/30/2021 | Thu | 2021/53 |
8187 | 12/31/2021 | Fri | 2021/53 |
8188 | 01/01/2022 | Sat | 2022/01 |
8189 | 01/02/2022 | Sun | 2022/02 |
8190 | 01/03/2022 | Mon | 2022/02 |
8191 | 01/04/2022 | Tue | 2022/02 |
8192 | 01/05/2022 | Wed | 2022/02 |
8193 | 01/06/2022 | Thu | 2022/02 |
8194 | 01/07/2022 | Fri | 2022/02 |
8195 | 01/08/2022 | Sat | 2022/02 |
8196 | 01/09/2022 | Sun | 2022/03 |
8197 | 01/10/2022 | Mon | 2022/03 |
8198 | 01/11/2022 | Tue | 2022/03 |
8199 | 01/12/2022 | Wed | 2022/03 |
8200 | 01/13/2022 | Thu | 2022/03 |
8201 | 01/14/2022 | Fri | 2022/03 |
Il campo week_number viene creato come misura nell'oggetto grafico mediante l'utilizzo della funzione weekname() e trasferendo il campo data come argomento della funzione.
La funzione weekname() identifica inizialmente la settimana in cui rientra il valore della data e restituisce il conteggio del numero della settimana e l'anno in cui si è verificata la transazione.
La variabile di sistema imposta la domenica come primo giorno della settimana.FirstWeekDay La variabile di sistema BrokenWeeks imposta l'applicazione in modo che utilizzi le settimane interrotte, quindi la settimana 1 inizia il 1 gennaio.
Poiché l'applicazione utilizza settimane interrotte e il primo giorno della settimana è la domenica, le transazioni che si verificano dal 2 all'8 gennaio restituiscono il valore 2022/02, ossia la settimana numero 2 del 2022. Si noti che la transazione 8192 è avvenuta il 5 gennaio e restituisce il valore 2022/02 per il campo 'week_number'.
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:
-
una serie 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'.
-
La variabile di sistema BrokenWeeks che è impostata su 0.
-
La variabile di sistema ReferenceDay che è impostata su 2.
-
La variabile di sistema che è impostata sul formato .DateFormatMM/DD/YYYY
Script di caricamento
SET BrokenWeeks=0;
SET ReferenceDay=2;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8183,12/27/2019,58.27
8184,12/28/2019,67.42
8185,12/29/2019,23.80
8186,12/30/2019,82.06
8187,12/31/2019,40.56
8188,01/01/2020,37.23
8189,01/02/2020,17.17
8190,01/03/2020,88.27
8191,01/04/2020,57.42
8192,01/05/2020,53.80
8193,01/06/2020,82.06
8194,01/07/2020,40.56
8195,01/08/2020,53.67
8196,01/09/2020,26.63
8197,01/10/2020,72.48
8198,01/11/2020,18.37
8199,01/12/2020,45.26
8200,01/13/2020,58.23
8201,01/14/2020,18.52
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella.
Creare una dimensione calcolata utilizzando la seguente espressione:
=weekname(date)
Per calcolare le vendite totali, creare la seguente misura:
=sum(amount)
Impostare la Formattazione numero della misura su Denaro.
=weekname(date) | sum(amount) |
---|---|
2019/52 | $125.69 |
2020/01 | $346.51 |
2020/02 | $347.57 |
2020/03 | $122.01 |
Per dimostrare i risultati dell'utilizzo della funzione weekname() in questo scenario, aggiungere il campo seguente come dimensione:
date
=weekname(date) | data | sum(amount) |
---|---|---|
2019/52 | 12/27/2019 | $58.27 |
2019/52 | 12/28/2019 | $67.42 |
2020/01 | 12/29/2019 | $23.80 |
2020/01 | 12/30/2019 | $82.06 |
2020/01 | 12/31/2019 | $40.56 |
2020/01 | 01/01/2020 | $37.23 |
2020/01 | 01/02/2020 | $17.17 |
2020/01 | 01/03/2020 | $88.27 |
2020/01 | 01/04/2020 | $57.42 |
2020/02 | 01/05/2020 | $53.80 |
2020/02 | 01/06/2020 | $82.06 |
2020/02 | 01/07/2020 | $40.56 |
2020/02 | 01/08/2020 | $53.67 |
2020/02 | 01/09/2020 | $26.63 |
2020/02 | 01/10/2020 | $72.48 |
2020/02 | 01/11/2020 | $18.37 |
2020/03 | 01/12/2020 | $45.26 |
2020/03 | 01/13/2020 | $58.23 |
2020/03 | 01/14/2020 | $18.52 |
Poiché l'applicazione utilizza settimane ininterrotte e la settimana 1 richiede un minimo di due giorni a gennaio a causa della variabile di sistema ReferenceDay, la settimana 1 del 2020 include le transazioni del 29 dicembre 2019.