# inmonths Funzione per script e grafici

Questa funzione consente di verificare se un indicatore temporale cade nello stesso mese, bimestre, trimestre, quadrimestre o semestre di una data base. È inoltre possibile stabilire se l'indicatore temporale ricade all'interno di un periodo di tempo precedente o successivo.

InMonths(n\_months, timestamp, base\_date, period\_no [, first\_month\_of\_year])

Tipo di dati restituiti: Booleano

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

Schema della funzione `inmonths()`.

Schema della funzione `inmonths()`.

Schema della funzione `inmonths()`inmonths(). ![Diagram that shows the range of time in which the inmonths() function will evaluate a base date as true or false.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-diagram1.png)

La funzione `inmonths()` divide l'anno in segmenti in base all'argomento `n_months` fornito. Quindi determina se ogni timestamp valutato rientra nello stesso segmento dell'argomento `base_date`. Se, invece, viene fornito un argomento `period_no`, la funzione determina se i timestamp cadono in un periodo precedente o successivo al periodo `base_date`.

I seguenti segmenti dell'anno sono disponibili nella funzione come argomenti `n_month`.

`n_month`n\_month argomenti

| Periodo | Numero di mesi |
| --- | --- |
| mese | 1. |
| bimestre | 2 |
| trimestre | 3 |
| quattro mesi | 4 |
| semestre | 6 |

Casi di utilizzo

La funzione `inmonths()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un file `if expression`. Utilizzando la funzione `inmonths()`, è possibile selezionare il periodo che si desidera valutare. Ad esempio, l'utente può identificare i prodotti fabbricati nel mese, trimestre o semestre di un determinato periodo.

Tipo di dati restituiti: Booleano

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

Argomenti

| Argomento | Descrizione |
| --- | --- |
| n\_months | Il numero di mesi che definisce il periodo. Un numero intero o un'espressione la cui risoluzione è un numero intero corrispondente a: 1 (equivalente alla funzione inmonth()), 2 (bimestre), 3 (equivalente alla funzione inquarter()), 4 (quadrimestre) o 6 (semestre). |
| timestamp | La data da confrontare con base\_date. |
| base\_date | La data utilizzata per valutare il periodo. |
| period\_no | Il periodo può essere differito mediante period\_no, un numero intero, o un'espressione la cui risoluzione è un numero intero, in cui il valore 0 indica il periodo che contiene base\_date. I valori negativi di period\_no indicano i periodi precedenti, mentre i valori positivi indicano i periodi 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 |
| Giu | 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.

Le impostazioni regionali predefinite nelle applicazioni 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'Qlik Sense interfaccia utente. Qlik Sense verrà visualizzato nella stessa lingua del browser che stai utilizzando.

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `inmonths(4, '01/25/2013', '04/25/2013', 0)` | Restituisce TRUE. Perché il valore del timestamp, 25/01/2013, si trova nel periodo di quattro mesi dal 01/01/2013 al 30/04/2013, in cui si trova il valore di `base_date`, resta 25/04/2013. |
| `inmonths(4, '05/25/2013', '04/25/2013', 0)` | Restituisce FALSE. Perché il 25/05/2013 non rientra nello stesso periodo dell'esempio precedente. |
| `inmonths(4, '11/25/2012', '02/01/2013', -1 )` | Restituisce TRUE. Poiché il valore di `period_no`, `-1`, sposta il periodo di ricerca indietro di un periodo di quattro mesi (il valore di n-mesi), il che rende il periodo di ricerca dal 01/09/2012 al 31/12/2012. |
| `inmonths(4, '05/25/2006', '03/01/2006', 0, 3)` | Restituisce TRUE. Perché il valore di `first_month_of_year` è impostato su `3`, che rende il periodo di ricerca dal 01/03/2006 al 30/07/2006 invece che dal 01/01/2006 al 30/04/2006. |

## Esempio 1 - Nessun argomento aggiuntivo

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

#### Caricamento script 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 per il 2022 viene caricato in una tabella denominata ‘`Transactions`’.

* Un caricamento precedente con una variabile aggiuntiva ‘`in_months`’, che determina quali transazioni hanno avuto luogo nello stesso trimestre del 15 maggio 2022.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
       *, 
       inmonths(3,date,'05/15/2022', 0) as in_months 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'2/19/2022',37.23 
8189,'3/7/2022',17.17 
8190,'3/30/2022',88.27 
8191,'4/5/2022',57.42 
8192,'4/16/2022',53.80 
8193,'5/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/22/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`
* `in_months`

Tabella dei risultati

| Dati | in\_months |
| --- | --- |
| 2/19/2022 | 0 |
| 3/7/2022 | 0 |
| 3/30/2022 | 0 |
| 4/5/2022 | -1 |
| 4/16/2022 | -1 |
| 5/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Il ‘`in_months`’ campo viene creato nell'istruzione di caricamento precedente utilizzando la funzione `inmonths()`." Il primo argomento fornito è `3`, che divide l'anno in segmenti di trimestre. Il secondo argomento identifica il campo da valutare, in questo esempio il campo data. Il terzo argomento è una data con hard coding per il 15 maggio, che è `base_date` e `period_no` di `0` è l'argomento finale.

Schema della funzione `inmonths()` con segmenti trimestrali.

Schema della funzione `inmonths()` con segmenti trimestrali.

Schema della funzione `inmonths()`inmonths() con segmenti trimestrali. ![Diagram that shows the range of time the inmonths() function evaluates with May 15 as the base date, and the year divided into quarter segments.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-examples1_and4-diagram.png)

Maggio rientra nel secondo trimestre dell'anno. Pertanto, qualsiasi transazione effettuata tra il 1° aprile e il 30 giugno restituirà un risultato booleano pari a TRUE. Questo viene convalidato nella tabella dei risultati.

## Esempio 2 - period\_no

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

#### Caricamento script 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 per il 2022 viene caricato in una tabella denominata '`Transactions`'.

* Un caricamento precedente con una variabile aggiuntiva, '`previous_quarter`', che determina se le transazioni hanno avuto luogo nel trimestre precedente al 15 maggio 2022.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
       *, 
       inmonths(3,date,'05/15/2022', -1) as previous_quarter 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'2/19/2022',37.23 
8189,'3/7/2022',17.17 
8190,'3/30/2022',88.27 
8191,'4/5/2022',57.42 
8192,'4/16/2022',53.80 
8193,'5/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/22/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`

Tabella dei risultati

| Dati | trimestre precedente |
| --- | --- |
| 2/19/2022 | -1 |
| 3/7/2022 | -1 |
| 3/30/2022 | -1 |
| 4/5/2022 | 0 |
| 4/16/2022 | 0 |
| 5/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/22/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

La funzione valuta se le transazioni si sono verificate nel primo trimestre dell'anno utilizzando `-1` come argomento `period_no` della funzione `inmonths()`. Il 15 maggio è il `base_date` e ricade nel secondo trimestre dell'anno (aprile-giugno).

Schema della funzione `inmonths()` con segmenti trimestrali e il `period_no` impostato su `-1`

Schema della funzione `inmonths()` con segmenti trimestrali e il `period_no` impostato su `-1`

Schema della funzione `inmonths()`inmonths() con segmenti trimestrali e il `period_no`period\_no impostato su `-1`-1 ![Diagram that shows the range of time the inmonths() function evaluates with May 15 as the base date, the year divided into quarter segments, and the period_no set -1 which sets the range of time back by one quarter.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-example2-diagram.png)

Pertanto, qualsiasi transazione che si verifichi tra gennaio e marzo restituirà un risultato booleano di TRUE.

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

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

#### Caricamento script 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 per il 2022 viene caricato in una tabella denominata '`Transactions`'.

* Un caricamento precedente con una variabile aggiuntiva, '`in_months`', che determina quali transazioni hanno avuto luogo nello stesso trimestre del 15 maggio 2022.

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 
       *, 
       inmonths(3,date,'05/15/2022', 0, 3) as in_months 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'2/19/2022',37.23 
8189,'3/7/2022',17.17 
8190,'3/30/2022',88.27 
8191,'4/5/2022',57.42 
8192,'4/16/2022',53.80 
8193,'5/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/22/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`
* `in_months`

Tabella dei risultati

| Dati | in\_months |
| --- | --- |
| 2/19/2022 | 0 |
| 3/7/2022 | -1 |
| 3/30/2022 | -1 |
| 4/5/2022 | -1 |
| 4/16/2022 | -1 |
| 5/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Utilizzando `3` come `first_month_of_year` argomento nella funzione `inmonths()`, la funzione inizia l'anno il 1° marzo. La `inmonths()` funzione quindi divide l'anno in trimestri: marzo-maggio, giugno-agosto, settembre-novembre, dicembre-febbraio. Pertanto, il 15 maggio cade nel primo trimestre dell'anno (marzo-maggio).

Schema della funzione `inmonths()` con marzo impostato come primo mese dell'anno.

Schema della funzione `inmonths()` con marzo impostato come primo mese dell'anno.

Schema della funzione `inmonths()`inmonths() con marzo impostato come primo mese dell'anno. ![Diagram that shows the range of time the inmonths() function evaluates with May 15 as the base date, the year divided into quarter segments, and March set as the first month of the year.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-example3-diagram.png)

Qualsiasi transazione che si verifica in questi mesi restituirà un risultato booleano pari a TRUE.

## Esempio 4 – Esempio di oggetto grafico

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

#### Carica script 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 trimestre del 15 maggio 2022 viene creato come misura in un grafico dell'applicazione.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'2/19/2022',37.23 
8189,'3/7/2022',17.17 
8190,'3/30/2022',88.27 
8191,'4/5/2022',57.42 
8192,'4/16/2022',53.80 
8193,'5/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/22/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`

Per calcolare se le transazioni sono avvenute nello stesso trimestre del 15 maggio, creare la seguente misura:

`=inmonths(3,date,'05/15/2022', 0)`

Tabella dei risultati

| date | =inmonths(3,date,'05/15/2022', 0) |
| --- | --- |
| 2/19/2022 | 0 |
| 3/7/2022 | 0 |
| 3/30/2022 | 0 |
| 4/5/2022 | -1 |
| 4/16/2022 | -1 |
| 5/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Il campo '`in_months`' viene creato nel grafico mediante l'utilizzo della funzione `inmonths()`. Il primo argomento fornito è `3`, che divide l'anno in segmenti di trimestre. Il secondo argomento identifica il campo da valutare, in questo esempio il campo data. Il terzo argomento è una data con hard coding per il 15 maggio, che è `base_date` e `period_no` di `0` è l'argomento finale.

Schema della funzione `inmonths()` con segmenti trimestrali.

Schema della funzione `inmonths()` con segmenti trimestrali.

Schema della funzione `inmonths()`inmonths() con segmenti trimestrali. ![Diagram that shows the range of time the inmonths() function evaluates with May 15 as the base date, and the year divided into quarter segments.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-examples1_and4-diagram.png)

Maggio rientra nel secondo trimestre dell'anno. Pertanto, qualsiasi transazione effettuata tra il 1° aprile e il 30 giugno restituirà un risultato booleano pari a TRUE. Questo viene convalidato nella tabella dei risultati.

## Esempio 5 - Scenario

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

#### Caricamento script 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 desidera un grafico che visualizzi, per tipologia di prodotto, il costo dei prodotti fabbricati nel primo segmento del 2021. L'utente vorrebbe poter definire la lunghezza di questo segmento.

Script di caricamento

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,manufacture_date,cost_price 
8188,product A,'2/19/2022',37.23 
8189,product D,'3/7/2022',17.17 
8190,product C,'3/30/2022',88.27 
8191,product B,'4/5/2022',57.42 
8192,product D,'4/16/2022',53.80 
8193,product D,'5/1/2022',82.06 
8194,product A,'5/7/2022',40.39 
8195,product B,'5/22/2022',87.21 
8196,product C,'6/15/2022',95.93 
8197,product B,'6/26/2022',45.89 
8198,product C,'7/9/2022',36.23 
8199,product D,'7/22/2022',25.66 
8200,product D,'7/23/2022',82.77 
8201,product A,'7/27/2022',69.98 
8202,product A,'8/2/2022',76.11 
8203,product B,'8/8/2022',25.12 
8204,product B,'8/19/2022',46.23 
8205,product B,'9/26/2022',84.21 
8206,product C,'10/14/2022',96.24 
8207,product D,'10/29/2022',67.67 
];
```

Risultati

Caricare i dati e aprire un foglio.

All'inizio dello script di caricamento, viene creata una variabile, vPeriod, legata al controllo dell'input variabile.

Procedere come segue:

1. Nel pannello risorse, fare clic su Grafici.

2. Sotto Oggetti dashboard, trascinare un Input variabile sul foglio.

3. Immettere un titolo per l'oggetto grafico.

4. In Variabile, selezionare vPeriod come nome e impostare l'oggetto in modo che venga visualizzato come Elenco a discesa.

5. Sotto Valori, fare clic sui valori Dinamici. Inserire la seguente funzione:

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

6. Aggiungere una nuova tabella al foglio.

7. Nella sezione Dati nel pannello delle proprietà, aggiungere product\_type come dimensione.

8. Aggiungere l'espressione seguente come misura:

   =sum(if(inmonths($(vPeriod),manufacture\_date,makedate(2022,01,01),0),cost\_price,0))

9. Impostare la misura Formattazione numero su Denaro.

Tabella dei risultati

| product\_type | =sum(if(inmonths($(vPeriod),manufacture\_date,makedate(2022,01,01),0),cost\_price,0)) |
| --- | --- |
| prodotto A | $88.27 |
| prodotto B | $37.23 |
| prodotto C | $17.17 |
| prodotto D | $0.00 |

La funzione inmonths() utilizza l'input dell'utente come argomento per definire la dimensione del segmento iniziale dell'anno. La funzione inserisce la data di produzione di ciascun prodotto come secondo argomento della funzione inmonths(). Utilizzando il 1° gennaio come terzo argomento della funzione inmonths(), i prodotti con date di produzione che cadono nel segmento iniziale dell'anno restituiranno un valore booleano di TRUE e quindi la funzione somma aggiungerà i costi di tali prodotti.