La funzione makeweekdate() è disponibile sia come script che come grafico. La funzione calcola la data in base ai parametri inseriti nella funzione.
Argomenti
Argomento
Descrizione
weekyear
L'anno definito dalla funzione WeekYear() per la data specifica, ovvero l'anno a cui appartiene il numero della settimana.
Nota informaticaIn alcuni casi l'anno settimanale può essere diverso dall'anno solare, ad esempio se la settimana 1 inizia già a dicembre dell'anno precedente.
week
Il numero della settimana definito dalla funzione Week() per la data specifica.
Se non viene dichiarato alcun numero di settimana, viene utilizzato -1.
weekday
Il giorno della settimana definito dalla funzione WeekDay() per la data in questione. 0 è il primo giorno della settimana e 6 è l'ultimo giorno della settimana.
Se non si indica alcun giorno della settimana, verrà utilizzato il valore 0.
Nota informaticaAnche se 0 significa sempre primo giorno della settimana e 6 è sempre l'ultimo, il parametro first_week_day determina a quali giorni della settimana corrisponde. Se omesso, viene utilizzato il valore della variabile FirstWeekDay.
Se si utilizzano settimane parziali, insieme a una combinazione impossibile di parametri, si può ottenere un risultato che non appartiene all'anno scelto.
Esempio:
MakeWeekDate(2021,1,0,6,1)
Restituisce "27 dicembre 2020", poiché questo giorno è il primo (la domenica) della settimana specificata. Il 1° gennaio 2021 era un venerdì.
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 specifica broken_weeks, il valore della variabile BrokenWeeks verrà utilizzato per definire se le settimane sono parziali o meno.
Per maggiori informazioni sulle variabili di sistema, vedere BrokenWeeks.
reference_day
Se non si specifica reference_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 maggiori informazioni sulle variabili di sistema, vedere ReferenceDay.
Casi di utilizzo
La funzione makeweekdate() viene comunemente utilizzata nello script per la generazione di dati per generare un elenco di date o per costruire date quando l'anno, la settimana e il giorno della settimana sono forniti nei dati di input.
Gli esempi seguenti presuppongono:
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Esempi di funzioni
Esempio
Risultato
makeweekdate(2014,6,6)
restituisce 02/09/2014
makeweekdate(2014,6,1)
restituisce 02/04/2014
makeweekdate(2014,6)
restituisce 02/03/2014 (viene utilizzato il giorno della settimana 0)
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 – giorno incluso
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 il totale delle vendite settimanali per il 2022 in una tabella chiamata Sales.
Le date delle transazioni sono fornite in due campi: year, week e sales.
Un caricamento precedente, utilizzato per creare una misura, end_of_week, utilizza la funzione makeweekdate() per restituire la data del venerdì di quella settimana nel formato MM/GG/AAAA.
Per dimostrare che la data restituita è un venerdì, l'espressione end_of_week viene anche racchiusa nella funzione weekday() per mostrare il giorno della settimana.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_year
transaction_week
end_of_week
week_day
Tabella dei risultati
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
Il campo 'end_of_week' viene creato nell'istruzione di caricamento precedente utilizzando la funzione makeweekdate(). I campi transaction_year, transaction_week vengono passati alla funzione come argomenti dell'anno e della settimana. Il valore 4 viene utilizzato per l'argomento giorno.
La funzione combina e converte questi valori in un campo data, restituendo i risultati nel formato della variabile di sistema DateFormat.
La funzione makeweekdate() e i relativi argomenti sono anche avvolti in una funzione weekday() per restituire il campo week_day; e come si può vedere nella tabella precedente, il campo week_day mostra che queste date si verificano di venerdì.
Esempio 2 - giorno escluso
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 i totali delle vendite settimanali per il 2022 in una tabella chiamata Sales.
Le date delle transazioni sono fornite in due campi: year, week e sales.
Un caricamento precedente, che viene sfruttato per creare una misura, first_day_of_week, utilizzando la funzione makeweekdate(). Questo restituirà la data del lunedì di quella settimana nel formato MM/GG/AAAA.
Per dimostrare che la data restituita è un lunedì, l'espressione first_day_of_week viene anche racchiusa nella funzione weekday() per mostrare il giorno della settimana.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_year
transaction_week
first_day_of_week
week_day
Tabella dei risultati
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mon
2022
02
01/10/2022
Mon
2022
03
01/17/2022
Mon
2022
04
01/24/2022
Mon
2022
05
01/31/2022
Mon
2022
06
02/07/2022
Mon
2022
07
02/14/2022
Mon
Il campo first_day_of_week viene creato nell'istruzione caricamento precedente utilizzando la funzione makeweekdate(). I parametri transaction_year e transaction_week vengono passati come argomenti della funzione, mentre il parametro giorno viene lasciato vuoto.
La funzione combina e converte questi valori in un campo data, restituendo i risultati nel formato della variabile di sistema DateFormat.
La funzione makeweekdate() e i relativi argomenti sono anche avvolti in una funzione weekday() che restituisce il campo week_day. Come si può vedere nella tabella precedente, il campo week_day restituisce Lunedì in tutti i casi, poiché questo parametro è stato lasciato vuoto nella funzione makeweekdate(), che ha come valore predefinito 0 (primo giorno della settimana), e il primo giorno della settimana è impostato su Lunedì dalla variabile di sistema FirstWeekDay.
Esempio 3 - 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:
Un set di dati contenente i totali delle vendite settimanali per il 2022 in una tabella chiamata Sales.
Le date delle transazioni sono fornite in due campi: year, week e sales.
In questo esempio, si utilizzerà un oggetto grafico per creare una misura equivalente al calcolo end_of_week del primo esempio. Questa misura utilizzerà la funzione makeweekdate() per restituire la data del venerdì di quella settimana nel formato MM/GG/AAAA.
Per dimostrare che la data restituita è un venerdì, viene creata una seconda misura per restituire il giorno della settimana.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Risultati
Procedere come indicato di seguito:
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_year
transaction_week
Per eseguire il calcolo equivalente a quello del end_of_weekcampo del primo esempio, creare la seguente misura:
Un campo equivalente a end_of_week viene creato nell'oggetto grafico come misura utilizzando la funzione makeweekdate(). I campi transaction_year e transaction_week vengono passati come argomenti dell'anno e della settimana. Il valore 4 viene utilizzato per l'argomento giorno.
La funzione combina e converte questi valori in un campo data, restituendo i risultati nel formato della variabile di sistema DateFormat.
Anche la funzione makeweekdate() e i relativi argomenti sono disposti in una funzione weekday() per restituire un calcolo equivalente a quello del campo week_day del primo esempio. Come si può vedere nella tabella precedente, l'ultima colonna a destra mostra che queste date si verificano di venerdì.
Esempio 4 – Scenario
Panoramica
In questo esempio, si crea un elenco di date contenente tutti i venerdì dell'anno 2022.
Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Risultati
Tabella dei risultati
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
+ altre 27 righe
La funzione makeweekdate() trova ogni venerdì del 2022. L'utilizzo di un parametro di settimana pari a -2 garantisce che non vengano perse delle date. Infine, un caricamento precedente crea un campo weekday aggiuntivo per chiarezza, per mostrare che ogni valore date è un venerdì.
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!