inyeartodate - funzione dello script e del grafico
Questa funzione restituisce True se timestamp ricade all'interno della parte dell'anno contenente base_date fino a includere l'ultimo millisecondo di base_date.
In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.
La funzione inyeartodate() segmenterà una particolare parte dell'anno con base_date, identificando la data massima consentita per quel segmento di anno. La funzione valuta quindi se un campo data o un valore rientrano in tale segmento e restituisce un risultato booleano.
Argomenti
Argomento
Descrizione
timestamp
La data da confrontare con base_date.
base_date
La data utilizzata per valutare l'anno.
period_no
L'anno può essere differito mediante period_no. period_no è un numero intero, in cui il valore 0 indica l'anno che contiene base_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.
Casi di utilizzo
La funzione inyeartodate() restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un'espressione if. Questa restituisce un'aggregazione o un calcolo che dipende dal fatto che una data valutata si sia verificata in quell'anno fino a includere la data in questione.
Ad esempio, la funzione inyeartodate() può essere utilizzata per identificare tutte le apparecchiature prodotte in un in un determinato anno fino a una data specifica.
In questi esempi viene utilizzato il formato della data (MM/GG/AAAA). Il formato della data viene specificato nell'istruzione SET DateFormat nella parte superiore dello script di caricamento dei dati. Modificare il formato negli esempi in base alle proprie necessità.
Esempi di funzioni
Esempio
Risultato
inyeartodate ('01/25/2013', '02/01/2013', 0)
Restituisce TRUE.
inyeartodate ('01/25/2012', '01/01/2013', 0)
Restituisce FALSE.
inyeartodate ('01/25/2012', '02/01/2013', -1)
Restituisce TRUE.
inyeartodate ('11/25/2012', '01/31/2013', 0, 4)
Restituisce TRUE. Il valore di timestamp ricade nell'anno fiscale che inizia nel quarto mese e prima del valore di base_date.
inyeartodate ('3/31/2013', '01/31/2013', 0, 4 )
Restituisce FALSE. Rispetto all'esempio precedente, il valore di timestamp ricade ancora nell'anno fiscale, ma viene dopo il valore dibase_date, pertanto ricade fuori dalla parte dell'anno.
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 tra il 2020 e 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, in_year_to_date, che determina quali transazioni sono avvenute durante l'anno fino al 26 luglio 2021.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
in_year_to_date
Tabella dei risultati
data
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Il campo in_year_to_date viene creato nell'istruzione LOAD precedente utilizzando la funzione inyeartodate(). Il primo argomento fornito identifica il campo da valutare.
Il secondo argomento è una data codificata per il 26 luglio 2021, che è il valore base_date che identifica il limite finale del segmento di anno. Un valore period_no uguale a 0 è l'argomento finale, il che significa che la funzione non confronta gli anni precedenti o successivi all'anno segmentato.
Qualsiasi transazione avvenuta tra il 1 gennaio e il 26 luglio restituisce il risultato booleano TRUE. Le date delle transazioni anteriori al 2021 e successive al 26 luglio 2021 restituiscono il valore FALSE.
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_year_to_date, che determina quali transazioni sono avvenute un anno prima del segmento di anno che termina il 26 luglio 2021.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
previous_year_to_date
Tabella dei risultati
data
previous_year_to_date
01/13/2020
-1
02/26/2020
-1
03/27/2020
-1
04/16/2020
-1
05/21/2020
-1
06/14/2020
-1
08/07/2020
0
09/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Il valore period_no di -1 indica che la funzione inyeartodate () confronta il segmento del trimestre di input con l'anno precedente. Con la data di input del 26 luglio 2021, il segmento dal 1 gennaio 2021 al 26 luglio 2021 è stato inizialmente identificato come year-to-date. period_no quindi compensa questo segmento facendolo precedere di un intero anno, facendo sì che i limiti della data diventino dal 1 gennaio al 26 luglio 2020.
Pertanto, qualsiasi transazione che si verifichi tra il 1 gennaio e il 26 luglio 2020 restituirà il risultato booleano TRUE.
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 contiene:
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
La creazione di un campo, in_year_to_date, che determina quali transazioni sono avvenute nello stesso anno fino al 26 luglio 2021.
In questo esempio, marzo è stato impostato come primo mese dell'anno fiscale.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
in_year_to_date
Tabella dei risultati
data
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Utilizzando 3 come argomento first_month_of_year nella funzione inyeartodate(), la funzione fa iniziare l'anno il 1 marzo. Il valore base_date del 26 luglio 2021 imposta quindi la data di fine per quel segmento di anno.
Pertanto, qualsiasi transazione che si verifichi tra il 1 marzo e il 26 luglio 2001 restituirà un risultato booleano TRUE, mentre le transazioni con una data che non rientra in questi limiti restituiranno il valore FALSE.
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 determina quali transazioni sono avvenute nello stesso anno fino al 26 luglio 2021 viene creato come misura in un oggetto grafico dell'applicazione.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:date.
Creare la seguente misura:
=inyeartodate(date,'07/26/2021', 0)
Tabella dei risultati
data
=inyeartodate(date,'07/26/2021', 0)
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
La misura in_year_to_date viene creata nell'oggetto grafico utilizzando la funzione inyeartodate(). Il primo argomento fornito identifica il campo da valutare. Il secondo argomento è una data codificata per il 26 luglio 2021, che è il valore base_date che identifica il limite finale del segmento di anno di confronto. Un valore period_no uguale a 0 è l'argomento finale, il che significa che la funzione non confronta gli anni precedenti o successivi all'anno segmentato.
Qualsiasi transazione avvenuta tra il 1 gennaio e il 26 luglio 2021 restituisce il risultato booleano TRUE. Le date delle transazioni anteriori al 2021 e successive al 26 luglio 2021 restituiscono il valore FALSE.
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 che viene caricato in una tabella chiamata Products.
Informazioni relative all'ID prodotto, al tipo di prodotto, alla data di produzione e al prezzo di costo.
L'utente finale vuole un oggetto grafico che mostri, per tipo di prodotto, il costo dei prodotti fabbricati nel 2021 fino al 26 luglio.
La funzione inyeartodate() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato nel 2021 prima del 27 luglio, la funzione inyeartodate() restituisce un valore booleano TRUE e somma il valore cost_price.
Il prodotto D è l'unico prodotto fabbricato anche dopo il 26 luglio 2021. La voce con product_ID 8203 è stata prodotta il 27 dicembre e costa $25.12. Pertanto, questo costo non è stato incluso nel totale del Prodotto D nell'oggetto grafico.
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!