yearstart - funzione dello script e del grafico
Questa funzione restituisce un indicatore temporale corrispondente all'inizio del primo giorno dell'anno contenente date. Il formato di output predefinito sarà il formato DateFormat impostato nello script.
Sintassi:
YearStart(date[, period_no[, first_month_of_year]])
In altre parole, la funzione yearstart() determina in quale anno cade la data. Quindi, restituisce data e ora, nel formato data, per il primo millisecondo di quell'anno. Il primo mese dell'anno è, per impostazione predefinita, gennaio. Tuttavia, è possibile modificare il mese da impostare come primo utilizzando l'argomento first_month_of_year nella funzione yearstart().
Casi di utilizzo
La funzione yearstart() viene utilizzata come parte di un'espressione quando si desidera che il calcolo utilizzi la frazione dell'anno trascorso fin'ora. Ad esempio, se si desidera calcolare l'interesse accumulato in un anno a oggi.
Tipo di dati restituiti: duale
Argomento | Descrizione |
---|---|
date | La data o la data e ora da valutare. |
period_no | period_no è un numero intero, in cui il valore 0 indica l'anno che contiene date. I valori negativi di period_no indicano gli anni precedenti, mentre i valori positivi indicano gli anni successivi. |
first_month_of_year | Se si intende utilizzare anni (fiscali) che non iniziano a gennaio, indicare un valore compreso tra 2 e 12 in first_month_of_year. |
I mesi seguenti possono essere utilizzati in first_month_of_year argument:
Month | Value |
---|---|
February | 2 |
March | 3 |
April | 4 |
May | 5 |
June | 6 |
July | 7 |
August | 8 |
September | 9 |
October | 10 |
November | 11 |
December | 12 |
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 |
---|---|
yearstart('10/19/2001') | Returns 01/01/2001 00:00:00. |
yearstart('10/19/2001',-1) | Returns 01/01/2000 00:00:00. |
yearstart('10/19/2001',0,4) | Returns 04/01/2001 00:00:00. |
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 tra il 2020 e il 2022 viene caricato in una tabella denominata 'Transactions'.
-
Il campo della data è stato fornito nel formato della variabile di sistema DateFormat, ossia MM/DD/YYYY.
-
Un'istruzione LOAD precedente che contiene quanto segue:
-
yearstart() funzione che è impostata come campo year_start.
-
La funzione Timestamp() impostata come campo year_start_timestamp.
-
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date) as year_start,
timestamp(yearstart(date)) as year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
id
-
date
-
year_start
-
year_start_timestamp
id | date | year_start | year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8189 | 02/26/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8190 | 03/27/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8191 | 04/16/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8192 | 05/21/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8193 | 08/14/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8194 | 10/07/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8195 | 12/05/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8196 | 01/22/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8197 | 02/03/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8198 | 03/17/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8199 | 04/23/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8200 | 05/04/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8201 | 06/30/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8202 | 07/26/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8203 | 12/27/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8204 | 06/06/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8205 | 07/18/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8206 | 11/14/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8207 | 12/12/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
Il campo 'year_start' viene creato nell'istruzione LOAD precedente mediante l'uso della funzione yearstart() e trasferendo il campo data come argomento della funzione.
La funzione yearstart() inizialmente identifica in quale anno rientra il valore della data e restituisce data e ora per il primo millisecondo di quell'anno.
La transazione 8199 è avvenuta il 23 aprile 2021. La funzione yearstart() restituisce il primo millisecondo di quell'anno, ovvero il 1 gennaio alle ore 12:00:00 AM.
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_year_start', che restituisce data e ora di inizio dell'anno precedente all'anno in cui ha avuto luogo la transazione.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date,-1) as previous_year_start,
timestamp(yearstart(date,-1)) as previous_year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
id
-
date
-
previous_year_start
-
previous_ year_start_timestamp
id | date | previous_year_start | previous_year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8189 | 02/26/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8190 | 03/27/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8191 | 04/16/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8192 | 05/21/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8193 | 08/14/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8194 | 10/07/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8195 | 12/05/2020 | 01/01/2019 | 1/1/2019 12:00:00 AM |
8196 | 01/22/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8197 | 02/03/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8198 | 03/17/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8199 | 04/23/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8200 | 05/04/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8201 | 06/30/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8202 | 07/26/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8203 | 12/27/2021 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8204 | 06/06/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8205 | 07/18/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8206 | 11/14/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8207 | 12/12/2022 | 01/01/2021 | 1/1/2021 12:00:00 AM |
In questa istanza, poiché il valore period_no di -1 viene utilizzato come argomento offset nella funzione yearstart(), la funzione per prima cosa identifica l'anno in cui avvengono le transazioni. Quindi, cerca l'anno precedente e identifica l'ultimo millisecondo di quell'anno.
La transazione 8199 è avvenuta il 23 aprile 2021. La funzione yearstart() restituisce il primo millisecondo dell'anno precedente, ovvero il 1° gennaio 2020 alle ore 12:00:00 AM, per il campo 'previous_year_start'.
Esempio 3 – first_month_of_year
Panoramica
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, la politica aziendale prevede che l'anno inizi il 1 aprile.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearstart(date,0,4) as year_start,
timestamp(yearstart(date,0,4)) as year_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
id
-
date
-
year_start
-
year_start_timestamp
id | date | year_start | year_start_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8189 | 02/26/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8190 | 03/27/2020 | 04/01/2019 | 4/1/2019 12:00:00 AM |
8191 | 04/16/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8192 | 05/21/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8193 | 08/14/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8194 | 10/07/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8195 | 12/05/2020 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8196 | 01/22/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8197 | 02/03/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8198 | 03/17/2021 | 04/01/2020 | 4/1/2020 12:00:00 AM |
8199 | 04/23/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8200 | 05/04/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8201 | 06/30/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8202 | 07/26/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8203 | 12/27/2021 | 04/01/2021 | 4/1/2021 12:00:00 AM |
8204 | 06/06/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8205 | 07/18/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8206 | 11/14/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
8207 | 12/12/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
In questa istanza, poiché l'argomento first_month_of_year di 4 viene utilizzato nella funzione yearstart(), imposta il primo giorno dell'anno come il 1 aprile e l'ultimo giorno dell'anno come il 31 marzo.
La transazione 8199 è avvenuta il 23 aprile 2021. Poiché la funzione yearstart() imposta l'inizio dell'anno sul 1 aprile, lo restituisce come valore 'year_start' per la transazione.
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 data e ora della data di inizio per l'anno in cui è avvenuta una transazione viene creato come misura in un oggetto grafico dell'applicazione.
Script di caricamento
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
id
-
date
Per calcolare in quale anno è avvenuta una transazione, creare le seguenti misure:
-
=yearstart(date)
-
=timestamp(yearstart(date))
id | date | =yearstart(date) | =timestamp(yearstart(date)) |
---|---|---|---|
8188 | 06/06/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8189 | 07/18/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8190 | 11/14/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8191 | 12/12/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
8192 | 01/22/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8193 | 02/03/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8194 | 03/17/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8195 | 04/23/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8196 | 05/04/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8197 | 06/30/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8198 | 07/26/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8199 | 12/27/2021 | 01/01/2021 | 1/1/2021 12:00:00 AM |
8200 | 01/13/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8201 | 02/26/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8202 | 03/27/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8203 | 04/16/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8204 | 05/21/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8205 | 08/14/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8206 | 10/07/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
8207 | 12/05/2020 | 01/01/2020 | 1/1/2020 12:00:00 AM |
La misura 'start_of_year' viene creata nell'oggetto grafico mediante l'utilizzo della funzione yearstart() e trasferendo il campo data come argomento della funzione.
La funzione yearstart() inizialmente identifica in quale anno rientra il valore della data e restituisce data e ora per il primo millisecondo di quell'anno.
La transazione 8199 è avvenuta il 23 aprile 2021. La funzione yearstart() restituisce il primo millisecondo di quell'anno, ovvero il 1 gennaio alle ore 12:00:00 AM.
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 caricato in una tabella denominata 'Loans'. La tabella contiene i seguenti campi:
-
Loan IDs.
-
Il saldo all'inizio dell'anno.
-
Il tasso di interesse semplice applicato su ciascun prestito ogni anno.
-
L'utente finale desidera un oggetto grafico che mostri, in base all'ID del prestito, gli interessi correnti che sono stati maturato per ciascun prestito nell'anno in corso.
Script di caricamento
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
loan_id
-
start_balance
Per calcolare gli interessi maturati, creare la seguente misura:
=start_balance*(rate*(today(1)-yearstart(today(1)))/365)
Impostare la misura Formattazione numero su Denaro.
loan_id | start_balance | =start_balance*(rate*(today(1)-yearstart(today(1)))/365) |
---|---|---|
8188 | $10000.00 | $39.73 |
8189 | $15000.00 | $339.66 |
8190 | $17500.00 | $166.85 |
8191 | $21000.00 | $283.64 |
8192 | $90000.00 | $3003.29 |
Utilizzando la data odierna come unico argomento, la funzione yearstart() restituisce la data di inizio dell'anno corrente. Sottraendo tale risultato dalla data corrente, l'espressione restituisce il numero di giorni trascorsi fino ad ora quest'anno.
Questo valore viene quindi moltiplicato per il tasso di interesse e diviso per 365, per restituire il tasso di interesse effettivo per questo periodo. Il tasso di interesse effettivo per il periodo viene quindi moltiplicato per il saldo iniziale del prestito, per restituire gli interessi maturati finora nel corso di quest'anno.