quarterstart - funzione dello script e del grafico
Questa funzione restituisce un valore corrispondente a un indicatore temporale recante il primo millisecondo del trimestre contenente date. Il formato di output predefinito sarà il formato DateFormat impostato nello script.
Sintassi:
QuarterStart(date[, period_no[, first_month_of_year]])
Tipo di dati restituiti: duale
In altre parole, la funzione quarterstart() determina in quale trimestre ricadrà date. Quindi restituisce un timestamp, in formato data, per l'ultimo millisecondo del primo mese di quel trimestre.
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 il trimestre che contiene date. I valori negativi di period_no indicano i trimestri precedenti, mentre i valori positivi indicano i trimestri 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. |
Casi di utilizzo
La funzione quarterstart() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione del trimestre trascorsa finora. Ad esempio, potrebbe essere utilizzata se un utente desidera calcolare gli interessi accumulati in un trimestre fino a oggi.
Esempio | Risultato |
---|---|
quarterstart('10/29/2005') | Restituisce 10/01/2005. |
quarterstart('10/29/2005', -1 ) | Restituisce 07/01/2005. |
quarterstart('10/29/2005', 0, 3) | Restituisce 09/01/2005. |
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 – 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 il 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, start_of_quarter, che restituisce un timestamp per l'inizio del trimestre in cui sono avvenute le transazioni.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date) as start_of_quarter,
timestamp(quarterstart(date)) as start_of_quarter_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
date | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
Il campo start_of_quarter viene creato nell'istruzione LOAD precedente mediante l'uso della funzione quarterstart() e trasferendo il campo data come argomento della funzione. La funzione uarterstart() identifica inizialmente il trimestre in cui rientra il valore della data. Quindi restituisce un timestamp per il primo millisecondo di quel trimestre.
La transazione 8203 è avvenuta l'8 agosto. La funzione quarterstart() identifica che la transazione è avvenuta nel terzo trimestre e restituisce il primo millisecondo del trimestre, ovvero il 1° luglio alle 12:00:00.
Esempio 2 – period_no
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 primo esempio.
-
La creazione di un campo, previous_quarter_start, che restituisce il timestamp per l'inizio del trimestre prima che fosse effettuata la transazione.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,-1) as previous_quarter_start,
timestamp(quarterstart(date,-1)) as previous_quarter_start_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
date
-
previous_quarter_start
-
previous_quarter_start_timestamp
date | previous_quarter_start | previous_quarter_start_timestamp |
---|---|---|
1/7/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
1/19/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/5/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/28/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
3/16/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
4/1/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/15/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/26/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
7/9/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/22/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/23/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/27/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/2/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/8/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/19/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
9/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
10/14/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
10/29/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
In questo caso, poiché il valore period_no di -1 è stato utilizzato come argomento offset nella funzione quarterstart(), la funzione per prima cosa identifica il trimestre in cui avvengono le transazioni. Si sposta poi un trimestre prima e identifica il primo millisecondo di tale trimestre.
La transazione 8203 è avvenuta l'8 agosto. La funzione quarterstart() identifica che il trimestre precedente la transazione era compreso tra il 1° aprile e il 30 giugno. Quindi restituisce il primo millisecondo di quel trimestre, il 1° aprile alle 12:00:00.
Esempio 3 – first_month_of_year
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. Tuttavia, in questo esempio, dobbiamo impostare il 1° marzo come inizio dell'anno finanziario.
Script di caricamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,0,3) as start_of_quarter,
timestamp(quarterstart(date,0,3)) as start_of_quarter_timestamp
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
date | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
1/19/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/5/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/28/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
3/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
4/1/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/7/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
6/15/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
6/26/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/9/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/22/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/23/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/27/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/2/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/8/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/19/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
In questa istanza, poiché l'argomento first_month_of_year di 3 viene utilizzato nella funzione quarterstart(), l'inizio dell'anno si sposta dal 1° gennaio al 1° marzo.
La transazione 8203 è avvenuta l'8 agosto. Poiché l'inizio dell'anno è il 1° marzo, i trimestri dell'anno sono compresi tra marzo-maggio, giugno-agosto, settembre-novembre e dicembre-febbraio. La funzione quarterstart() identifica che la transazione ha avuto luogo nel trimestre compreso tra l'inizio di giugno e agosto e restituisce il primo millisecondo di tale trimestre, ovvero il 1° giugno alle 12:00:00.
Esempio 4 – 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 un timestamp per la fine del trimestre in cui sono avvenute le transazioni viene creato come misura in un oggetto grafico dell'applicazione.
Script di caricamento
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.
Aggiungere le seguenti misure:
-
=quarterstart(date)
-
=timestamp(quarterstart(date))
date | =quarterstart(date) | =timestamp(quarterstart(date)) |
---|---|---|
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
La misura start_of_quarter viene creata nell'oggetto grafico mediante l'utilizzo della funzione quarterstart() e trasferendo il campo date come argomento della funzione.
La funzione quarterstart() identifica il trimestre in cui cade il valore della data, restituendo un timestamp per il primo millisecondo di quel trimestre.
La transazione 8203 è avvenuta l'8 agosto. La funzione quarterstart() identifica che la transazione è avvenuta nel terzo trimestre e restituisce il primo millisecondo del trimestre. Il valore restituito è il 1° luglio alle 12:00:00.
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 saldi di prestiti, che viene caricato in una tabella chiamata Loans.
-
Dati costituiti dagli ID dei prestiti, dal saldo all'inizio del trimestre e dal tasso di interesse semplice annuo applicato a ciascun prestito.
L'utente finale desidera un oggetto grafico che mostri, in base all'ID del prestito, gli interessi correnti che sono stati maturati per ciascun prestito nel trimestre 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
Procedere come indicato di seguito:
-
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
loan_id
-
start_balance
-
-
Quindi, creare questa misura per calcolare l'interesse accumulato:
=start_balance*(rate*(today(1)-quarterstart(today(1)))/365)
-
Impostare la Formattazione numero della misura su Denaro.
loan_id | start_balance | =start_balance*(rate*(today(1)-quarterstart(today(1)))/365) |
---|---|---|
8188 | $10000.00 | $15.07 |
8189 | $15000.00 | $128.84 |
8190 | $17500.00 | $63.29 |
8191 | $21000.00 | $107.59 |
8192 | $90000.00 | $1139.18 |
Utilizzando la data odierna come unico argomento, la funzione quarterstart() 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 questo trimestre.
Questo valore viene quindi moltiplicato per il tasso di interesse e diviso per 365, per restituire il tasso di interesse effettivo incorso per questo periodo. Il risultato viene poi moltiplicato per il saldo iniziale del prestito per ottenere gli interessi maturati fino a questo momento del trimestre.