# inmonthstodate - funzione dello script e del grafico

Questa funzione stabilisce se un indicatore temporale ricade all'interno della parte di un periodo di un mese, bimestre, trimestre, quadrimestre o semestre fino a includere l'ultimo millisecondo di `base_date`. È inoltre possibile stabilire se l'indicatore temporale ricade all'interno di un periodo di tempo precedente o successivo.

Sintassi:

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

Tipo di dati restituiti: Booleano

Schema della funzione `inmonthstodate`.

Schema della funzione `inmonthstodate`.

Schema della funzione `inmonthstodate`inmonthstodate. ![Schema che mostra come la funzione inmonthstodate possa essere utilizzata per identificare se un timestamp cade all'interno o all'esterno di un segmento di tempo stabilito.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram1.png)

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

Nella funzione `inmonthstodate()`, `base_date` agisce come punto finale del particolare segmento di anno di cui fa parte.

Ad esempio, se l'anno è stato suddiviso in segmenti terziari e la `base_date` era il 15 maggio, qualsiasi timestamp tra l'inizio di gennaio e la fine di aprile restituirà un risultato booleano di FALSE. Le date comprese tra il 1° e il 15 maggio restituirebbero TRUE. Il resto dell'anno restituirebbe FALSE.

Schema dell'intervallo di risultati booleani della funzione `inmonthstodate`.

Schema dell'intervallo di risultati booleani della funzione `inmonthstodate`.

Schema dell'intervallo di risultati booleani della funzione `inmonthstodate`inmonthstodate. ![Schema che mostra la gamma di risultati booleani della funzione inmonthstodate.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

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

Argomenti `n_month`n\_month

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

Casi di utilizzo

La funzione `inmonthstodate()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un file `if expression`. Utilizzando la funzione `inmonthstodate()`, è possibile selezionare il periodo che si desidera valutare. Ad esempio, fornendo una variabile di input che consenta all'utente di identificare i prodotti fabbricati nel mese, trimestre o semestre di un periodo, fino a una certa data.

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

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `inmonthstodate(4, '01/25/2013', '04/25/2013',<br>0)` | Restituisce il valore di True, perché il valore di timestamp, 01/25/2013 ricade entro il periodo di quattro mesi di 01/01/2013 fino alla fine di 04/25/2013, in cui ricade il valore di base\_date, 04/25/2013. |
| `inmonthstodate(4, '04/26/2013', '04/25/2006',<br>0)` | Restituisce False, perché 04/26/2013 non ricade nello stesso periodo dell'esempio precedente. |
| `inmonthstodate(4, '09/25/2005', '02/01/2006',<br>-1)` | Restituisce True, perché il valore di period\_no, -1, fa slittare il periodo della ricerca indietro di un periodo di quattro mesi (il valore di n-months) e questo cambia il periodo di ricerca da 01/09/2005 a 02/01/2006. |
| `inmonthstodate(4, '04/25/2006', '06/01/2006',<br>0, 3)` | Restituisce True, perché il valore di first\_month\_of\_year è impostato su 3 e ciò cambia il periodo di ricerca da 03/01/2006 a 06/01/2006 anziché da 05/01/2006 in 06/01/2006. |

## Esempio 1 – Nessun argomento aggiuntivo

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.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 per il 2022 viene caricato in una tabella denominata '`Transactions`'.

* Un campo data nel formato `DateFormat` della variabile di sistema `(MM/DD/YYYY)`.

* Un'istruzione di caricamento precedente contenente:

  * La funzione `inmonthstodate()` impostata come campo, ‘`in_months_to_date`’. Questo determina quali transazioni sono state effettuate nel trimestre fino al 15 maggio 2022.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `in_months_to_date`

Tabella dei risultati

| date | in\_months\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 |

Il campo '`in_months_to_date`' viene creato nell'istruzione di caricamento precedente utilizzando la funzione `inmonthstodate()`.

Il primo argomento fornito è `3`, che divide l'anno in segmenti di trimestre. Il secondo argomento identifica il campo da valutare. Il terzo argomento è una data codificata per il 15 maggio, ovvero il `base_date` che definisce il confine finale del segmento. Un `period_no` di `0` rappresenta l'argomento finale.

Schema della funzione `inmonthstodate` senza argomenti aggiuntivi.

Schema della funzione `inmonthstodate` senza argomenti aggiuntivi.

Schema della funzione `inmonthstodate`inmonthstodate senza argomenti aggiuntivi. ![Schema che mostra l'intervallo di transazioni identificate come TRUE dalla funzione inmonthstodate.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Qualsiasi transazione avvenuta tra il 1° aprile e il 15 maggio restituisce il risultato booleano di TRUE. Le date di transazione al di fuori di tale periodo restituiscono FALSE.

## Esempio 2 – period\_no

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

#### Script di caricamento e risultati

Panoramica

Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

Tuttavia, in questo esempio, il compito è quello di creare un campo, '`previous_qtr_to_date`' che determini se le transazioni hanno avuto luogo un trimestre prima del 15 maggio.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', -1) as previous_qtr_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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_qtr_to_date`

Tabella dei risultati

| data | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/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 |

Utilizzando `-1` come argomento `period_no` della funzione `inmonthstodate()`, la funzione sposta di un trimestre i confini del segmento dell'anno di confronto.

Il 15 maggio rientra nel secondo trimestre dell'anno, pertanto il segmento inizialmente corrisponde al periodo compreso tra il 1° aprile e il 15 maggio. L'argomento `period_no` compensa questo segmento con un valore negativo di tre mesi. I limiti di data diventano dal 1° gennaio al 15 febbraio.

Schema della funzione `inmonthstodate` con un valore period\_no impostato a -1.

Schema della funzione `inmonthstodate` con un valore period\_no impostato a -1.

Schema della funzione `inmonthstodate`inmonthstodate con un valore period\_no impostato a -1. ![Schema che mostra la gamma di transazioni con l'argomento period_no impostato a -1.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example2-diagram.png)

Pertanto, qualsiasi transazione che si verifichi tra il 1° gennaio e il 15 febbraio restituirà il risultato booleano di TRUE.

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

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

#### Script di caricamento e risultati

Panoramica

Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

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

Crea un campo, '`in_months_to_date`', che determina quali transazioni sono avvenute nello stesso trimestre fino al 15 maggio 2022.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0,3) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

* `in_months_to_date`

Tabella dei risultati

| data | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 |

Utilizzando `3` come argomento `first_month_of_year` nella funzione `inmonthstodate()`, questa inizia l'anno il 1° marzo e poi divide l'anno in trimestri in base al primo argomento fornito. Pertanto, i segmenti del trimestre sono:

* Mag-Mag

* Giu-Ago

* Set-Nov

* Dic-Feb

Il ` base_date  ` del 15 maggio segmenta quindi il trimestre da marzo a maggio impostando il limite finale al 15 maggio.

Schema della funzione `inmonthstodate` con marzo impostato come primo mese dell'anno.

Schema della funzione `inmonthstodate` con marzo impostato come primo mese dell'anno.

Schema della funzione `inmonthstodate`inmonthstodate con marzo impostato come primo mese dell'anno. ![Schema che mostra la gamma di transazioni con il primo mese dell'anno impostato su marzo.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example3-diagram.png)

Pertanto, qualsiasi transazione che si verifichi tra il 1° marzo e il 15 maggio restituirà un risultato booleano di TRUE, mentre le transazioni con date al di fuori di questi confini restituiranno un valore di FALSE.

## Esempio 4 - Esempio grafico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

In questo esempio, il set di dati è invariato e viene caricato nell'app. L'attività richiede di creare un calcolo che determina se le transazioni sono avvenute nello stesso trimestre del 15 maggio come misura in un grafico dell'app.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

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

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

Tabella dei risultati

| date | =inmonthstodate(3,date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 misura '`‘in_months_to_date`' viene creata nell'oggetto grafico utilizzando la funzione `inmonthstodate()`.

Il primo argomento fornito è `3`, che divide l'anno in segmenti di trimestre. Il secondo argomento identifica il campo da valutare. Il terzo argomento è una data codificata per il 15 maggio, ovvero il `base_date`, che definisce il confine finale del segmento. Un `period_no` di `0` rappresenta l'argomento finale.

Schema della funzione `inmonthstodate` con segmenti trimestrali.

Schema della funzione `inmonthstodate` con segmenti trimestrali.

Schema della funzione `inmonthstodate`inmonthstodate con segmenti trimestrali.![Schema che mostra la gamma di transazioni che restituiscono un valore booleano TRUE.](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example4-diagram.png)

Qualsiasi transazione avvenuta tra il 1° aprile e il 15 maggio restituirà il risultato booleano di TRUE. Le date di transazione al di fuori di tale segmento restituiscono FALSE.

## Esempio 5 – Scenario

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

#### Script di caricamento e risultati

Panoramica

In questo esempio, un set di dati è caricato in una tabella denominata "Sales". La tabella contiene i seguenti campi:

* ID prodotto

* Tipo di prodotto

* Data di vendita

* Prezzo di vendita

L'utente finale desidera un grafico che visualizzi, per tipo di prodotto, le vendite dei prodotti venduti nel periodo precedente il 24 dicembre 2022. L'utente vorrebbe poter definire la lunghezza di questo periodo.

Script di caricamento

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,sales_date,sales_price 
8188,product A,'9/19/2022',37.23 
8189,product D,'10/27/2022',17.17 
8190,product C,'10/30/2022',88.27 
8191,product B,'10/31/2022',57.42 
8192,product D,'11/16/2022',53.80 
8193,product D,'11/28/2022',82.06 
8194,product A,'12/2/2022',40.39 
8195,product B,'12/5/2022',87.21 
8196,product C,'12/15/2022',95.93 
8197,product B,'12/16/2022',45.89 
8198,product C,'12/19/2022',36.23 
8199,product D,'12/22/2022',25.66 
8200,product D,'12/23/2022',82.77 
8201,product A,'12/24/2022',69.98 
8202,product A,'12/24/2022',76.11 
8203,product B,'12/26/2022',25.12 
8204,product B,'12/27/2022',46.23 
8205,product B,'12/27/2022',84.21 
8206,product C,'12/28/2022',96.24 
8207,product D,'12/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 delle risorse, fare clic su Oggetti personalizzati.

2. Selezionare Qlik Dashboard bundle e aggiungere un Input variabile al proprio foglio.

3. Inserire un titolo per il 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 quanto segue:

   ```
   ='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(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0))

9. Impostare la misura Formattazione numero su Denaro.

Tabella dei risultati

| product\_type | =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0)) |
| --- | --- |
| prodotto A | $186.48 |
| prodotto B | $190.52 |
| prodotto C | $220.43 |
| prodotto D | $261.46 |

La funzione inmonthstodate() utilizza l'input dell'utente come argomento per definire la dimensione del segmento iniziale dell'anno.

La funzione inserisce la data di vendita di ciascun prodotto come secondo argomento della funzione inmonthstodate(). Utilizzando il 24 dicembre come terzo argomento della funzione inmonthstodate(), i prodotti con date di vendita che si verificano nel periodo definito fino al 24 dicembre incluso restituiscono un valore booleano di TRUE. La funzione somma aggiunge le vendite di questi prodotti.