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.
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().
In Qlik Sense, le impostazioni regionali vengono recuperate alla creazione dell'app e le impostazioni corrispondenti vengono memorizzate nello script come variabili d'ambiente.
Uno sviluppatore di app nordamericano ottiene spesso Set BrokenWeeks=1; nello script, corrispondente a settimane interrotte. Uno sviluppatore di app europeo ottiene spesso Set BrokenWeeks=0; nello script, corrispondente a settimane intere.
Se l'applicazione utilizza settimane interrotte, il conteggio del numero di settimane 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.
Esempio di funzione Weekname
Data
Nome settimana ISO
Nome settimana US
Sab 26 dic 2020
2020/52
2020/52
Dom 27 dic 2020
2020/52
2020/53
Lun 28 dic 2020
2020/53
2020/53
Mar 29 dic 2020
2020/53
2020/53
Mer 30 dic 2020
2020/53
2020/53
Gio 31 dic 2020
2020/53
2020/53
Ven 1° gen 2021
2020/53
2021/01
Sab 2 gen 2021
2020/53
2021/01
Dom 3 gen 2021
2020/53
2021/02
Lun 4 gen 2021
2021/01
2021/02
Mar 5 gen 2021
2021/01
2021/02
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
Argomenti
Argomento
Descrizione
timestamp
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.
reference_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 maggiori informazioni sulle variabili di sistema, vedere ReferenceDay.
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.
Gli esempi riportati di seguito presuppongono:
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Esempi di funzioni
Esempio
Risultato
weekname('01/12/2013')
Restituisce 2013/02.
weekname('01/12/2013', -1)
Restituisce 2013/01.
weekname('01/12/2013', 0, 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:
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'.
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 di caricamento 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
Tabella dei risultati
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 di caricamento 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.
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
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
Tabella dei risultati
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 transazioni viene creato come misura in un oggetto grafico dell'applicazione.
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)
Tabella dei risultati
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:
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'.
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
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 di aggregazione:
=sum(amount)
Impostare la Formattazione numero della misura su Denaro.
Tabella dei risultati
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
Tabella dei risultati con campo data
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.
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!