# inyear Funzione per script e grafici

Questa funzione restituisce True se timestamp ricade all'interno dell'anno contenente base\_date.

Sintassi:

InYear (timestamp, base\_date, period\_no [, first\_month\_of\_year])

Tipo di dati restituiti: Boolean

In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.

Schema dell'intervallo della funzione `inyear()`

Schema dell'intervallo della funzione `inyear()`

Schema dell'intervallo della funzione `inyear()`inyear() ![Schema che mostra l'intervallo di tempo che la funzione inyear() valuta e restituisce un risultato booleano a seconda del posizionamento della data di base.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-diagram1.png)

La funzione `inyear()` restituisce un risultato booleano quando si confrontano i valori della data selezionata con un anno definito dall'opzione `base_date`.

Quando usare inyear

La funzione `inyear()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un file `if expression`. Restituisce un'aggregazione o un calcolo che dipende dal fatto che una data valutata si sia verificata nell'anno in questione. Ad esempio, la funzione `inyear()` può essere utilizzata per identificare tutte le vendite avvenute in un determinato anno.

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. |

È possibile utilizzare i seguenti valori per impostare il primo mese dell'anno nell'argomento `first_month_of_year`:

valori first\_month\_of\_year

| Mese | Valore |
| --- | --- |
| Febbraio | 2 |
| Marzo | 3 |
| Aprile | 4 |
| Maggio | 5 |
| Giugno | 6 |
| Luglio | 7 |
| Agosto | 8 |
| Settembre | 9 |
| Ottobre | 10 |
| Novembre | 11 |
| Dicembre | 12 |

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/DD/YYYY. 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. Per ulteriori informazioni, vedere [Modifica delle impostazioni internazionali per applicazioni e script](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Le impostazioni regionali predefinite nelle applicazioni si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.

Se si è un creatore di applicazioni, è possibile impostare la regione predefinita per le applicazioni che si creano. Per ulteriori informazioni, vedere [Regolazione delle impostazioni internazionali preferite per la creazione di app e script in Qlik Cloud Analytics](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `inyear ('01/25/2013', '01/01/2013', 0 )` | Restituisce TRUE |
| `inyear ('01/25/2012', '01/01/2013', 0)` | Restituisce FALSE |
| `inyear ('01/25/2013', '01/01/2013', -1)` | Restituisce FALSE |
| `inyear ('01/25/2012', '01/01/2013', -1 )` | Restituisce TRUE |
| `inyear ('01/25/2013', '01/01/2013', 0, 3)` | Restituisce TRUE<br><br>Il valore di `base_date` e `first_month_of_year` specifica che il timestamp deve essere compreso tra il 03/01/2012 e il 28/02/2013. |
| `inyear ('03/25/2013', '07/01/2013', 0, 3 )` | Restituisce TRUE |

## Esempio 1 - Esempio di base

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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`'.

* Un caricamento precedente che contiene la funzione `inyear()` impostata come campo '`in_year`' e che determina quali transazioni hanno avuto luogo nello stesso anno del 26 luglio 2021.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', 0) as in_year 
        ; 
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:

* `date`
* `in_year`

Tabella dei risultati

| date | in\_year |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/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 |
| 12/27/2021 | -1 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Il campo '`in_year`' viene creato nell'istruzione LOAD precedente utilizzando la funzione `inyear()`. Il primo argomento identifica il campo da valutare. Il secondo argomento è una data codificata per il 26 luglio 2021, ovvero il `base_date` che determina l'anno di confronto. Un `period_no` di `0` è l'argomento finale, il che significa che la funzione `inyear()` non confronta gli anni precedenti o successivi all'anno.

Schema dell'intervallo della funzione `inyear()` con il 26 luglio come data base

Schema dell'intervallo della funzione `inyear()` con il 26 luglio come data base

Schema dell'intervallo della funzione `inyear()`inyear() con il 26 luglio come data base ![Schema della funzione inyear() con il 26 luglio come data base e l'intervallo di tempo dal 1° gennaio 2021 al 1° gennaio 2022 evidenziato.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-examples1_and4-diagram.png)

Qualsiasi transazione che si verifica nel 2021 restituisce un risultato booleano pari a TRUE.

## Esempio 2 - period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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`.

* Un caricamento precedente che contiene la funzione `inyear()` impostata come campo '`previous_year`' e determina quali transazioni hanno avuto luogo nell'anno prima dell'anno con 26 luglio 2021.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', -1) as previous_year 
        ; 
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:

* `date`
* `previous_year`

Tabella dei risultati

| date | previous\_year |
| --- | --- |
| 01/13/2020 | -1 |
| 02/26/2020 | -1 |
| 03/27/2020 | -1 |
| 04/16/2020 | -1 |
| 05/21/2020 | -1 |
| 08/14/2020 | -1 |
| 10/07/2020 | -1 |
| 12/05/2020 | -1 |
| 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 |
| 12/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

L'utilizzo di `-1` come argomento `period_no` della funzione `inyear()` sposta i confini dell'anno di confronto indietro di un intero anno. Il 2021 viene inizialmente identificato come anno di confronto. `period_no` compensa l'anno comparatore di un anno, rendendo il 2020 l'anno di confronto.

Schema dell'intervallo della funzione `inyear()` con l'argomento period\_no impostato su `-1`

Schema dell'intervallo della funzione `inyear()` con l'argomento period\_no impostato su `-1`

Schema dell'intervallo della funzione `inyear()`inyear() con l'argomento period\_no impostato su `-1`-1 ![Schema della funzione inyear() con il 26 luglio come data base e l'argomento period_no impostato su uno negativo.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-example2-diagram.png)

Pertanto, qualsiasi transazione che si verifica nel 2020 restituisce un risultato booleano di TRUE.

## Esempio 3 - first\_month\_of\_year

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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`.

* Un caricamento precedente che contiene la funzione `inyear()` impostata come campo '`in_year`' e che determina quali transazioni hanno avuto luogo nello stesso anno del 26 luglio 2021.

Tuttavia, in questo esempio, il criterio organizzativo prevede che marzo sia il primo mese dell'anno finanziario.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', 0, 3) as in_year 
        ; 
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:

* `date`
* `in_year`

Tabella dei risultati

| date | in\_year |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/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 |
| 12/27/2021 | -1 |
| 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 `inyear()`, l'anno inizia il 1° marzo e termina alla fine di febbraio.

Schema dell'intervallo della funzione `inyear()` con marzo impostato come primo mese dell'anno

Schema dell'intervallo della funzione `inyear()` con marzo impostato come primo mese dell'anno

Schema dell'intervallo della funzione `inyear()`inyear() con marzo impostato come primo mese dell'anno ![Schema della funzione inyear() con il 26 luglio come data base e il primo mese dell'anno impostato come marzo.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-example3-diagram.png)

Pertanto, qualsiasi transazione che si verifichi tra il 1° marzo 2021 e il 1° marzo 2022 restituirà un risultato booleano di TRUE.

## Esempio 4 – Esempio di oggetto grafico

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.htm)

#### Script di caricamento ed espressione del 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 determina se le transazioni sono avvenute nello stesso anno del 26 luglio 2021 viene creato come misura in un oggetto grafico dell'applicazione.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
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 questo campo come dimensione:

* `date`

Per calcolare se le transazioni sono avvenute nello stesso anno del 26 luglio 2021, creare la seguente misura:

* `=inyear(date,'07/26/2021', 0)`

Tabella dei risultati

| date | =inyear(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 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/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 |
| 12/27/2021 | -1 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Il campo '`in_year`' viene creato nel grafico mediante l'utilizzo della funzione `inyear()`. Il primo argomento identifica il campo da valutare. Il secondo argomento è una data codificata per il 26 luglio 2021, ovvero il `base_date` che determina l'anno di confronto. Un `period_no` di `0` è l'argomento finale, il che significa che la funzione `inyear()` non confronta gli anni precedenti o successivi all'anno.

Schema dell'intervallo della funzione `inyear()` con il 27 luglio come data base

Schema dell'intervallo della funzione `inyear()` con il 27 luglio come data base

Schema dell'intervallo della funzione `inyear()`inyear() con il 27 luglio come data base ![Schema della funzione inyear() con il 27 luglio come data base e l'intervallo di tempo dal 1° gennaio 2021 al 1° gennaio 2022 evidenziato.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-examples1_and4-diagram.png)

Qualsiasi transazione che si verifica nel 2021 restituisce un risultato booleano pari a TRUE.

## Esempio 5 - Scenario

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella chiamata 'Products'.

* La tabella contiene i seguenti campi:

  * ID prodotto

  * tipo di prodotto

  * data di produzione

  * prezzo di costo

L'utente finale vuole un oggetto grafico che mostri, per tipo di prodotto, il costo dei prodotti fabbricati nel 2021.

Script di caricamento

```
Products: 
Load 
* 
Inline  
[ 
product_id,product_type,manufacture_date,cost_price 
8188,product A,'01/13/2020',37.23 
8189,product B,'02/26/2020',17.17 
8190,product B,'03/27/2020',88.27 
8191,product C,'04/16/2020',57.42 
8192,product D,'05/21/2020',53.80 
8193,product D,'08/14/2020',82.06 
8194,product C,'10/07/2020',40.39 
8195,product B,'12/05/2020',87.21
8196,product A,'01/22/2021',95.93 
8197,product B,'02/03/2021',45.89 
8198,product C,'03/17/2021',36.23 
8199,product C,'04/23/2021',25.66
8200,product B,'05/04/2021',82.77 
8201,product D,'06/30/2021',69.98 
8202,product D,'07/26/2021',76.11 
8203,product D,'12/27/2021',25.12 
8204,product C,'06/06/2022',46.23 
8205,product C,'07/18/2022',84.21 
8206,product A,'11/14/2022',96.24 
8207,product B,'12/12/2022',67.67 
]; 
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* product\_type

Per calcolare la somma di ogni prodotto fabbricato nel 2021, creare la seguente misura:

* =sum(if(InYear(manufacture\_date,makedate(2021,01,01),0),cost\_price,0))

Procedere come indicato di seguito:

1. Impostare la misura Formattazione numero su Denaro.

2. In Aspetto, disattivare Totals.

Tabella dei risultati

| product\_type | =sum(if(InYear(manufacture\_date,makedate(2021,01,01),0),cost\_price,0)) |
| --- | --- |
| prodotto A | $95.93 |
| prodotto B | $128.66 |
| prodotto C | $61.89 |
| prodotto D | $171.21 |

La funzione inyear() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato nel 2021, la funzione inyear() restituisce il valore booleano TRUE e mostra la somma di cost\_price.