# monthsend Funzione per script e grafici

Questa funzione restituisce un valore corrispondente a un timestamp recante l'ultimo millisecondo del mese, del bimestre, del trimestre, del quadrimestre o del semestre contenente una data di base. È inoltre possibile individuare il timestamp per la fine di un periodo di tempo precedente o successivo. Il formato di output predefinito è il formato `DateFormat` impostato nello script.

Sintassi:

MonthsEnd(n\_months, date[, period\_no [, first\_month\_of\_year]])

Tipo di dati restituiti: duale

Schema della funzione `monthsend`.

Schema della funzione `monthsend`.

Schema della funzione `monthsend`monthsend. ![Schema che mostra come la funzione monthsend possa essere utilizzata per identificare il timestamp più recente del periodo scelto.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-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). |
| date | La data o la data e ora da valutare. |
| 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. |

La funzione `monthsend()` divide l'anno in segmenti in base all'argomento `n_months` fornito. Quindi valuta in quale segmento rientra ogni data fornita e restituisce l'ultimo millisecondo, in formato data, di quel segmento. La funzione può restituire il timestamp finale dei segmenti precedenti o successivi e ridefinire il primo mese dell'anno.

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 |
| quattro mesi | 4 |
| semestre | 6 |

Quando usare monthsend

La funzione `monthsend()` viene utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione di mese trascorsa fino a quel momento. L'utente ha la possibilità, tramite una variabile, di selezionare il periodo di sua scelta. Ad esempio, il `monthsend()` può fornire una variabile di input che consenta all'utente di calcolare il totale degli interessi non ancora maturati durante il mese, il trimestre o il semestre.

## 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 |
| --- | --- |
| `monthsend(4, '07/19/2013')` | Restituisce 08/31/2013. |
| `monthsend(4, '10/19/2013', -1)` | Restituisce 08/31/2013. |
| `monthsend(4, '10/19/2013', 0, 2)` | Restituisce 01/31/2014.<br>Poiché l'inizio dell'anno corrisponde al mese 2. |

## Esempio 1 - Esempio di base

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.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 fornito nel formato `(MM/DD/YYYY)` della variabile di sistema `DateFormat`.

* Un'istruzione di caricamento precedente contenente:

  * La funzione `monthsend` impostata come campo, ‘`bi_monthly_end`’. Questo raggruppa le transazioni in segmenti bimestrali.

  * La funzione `timestamp` che restituisce il timestamp iniziale del segmento per ogni transazione.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthsend(2,date) as bi_monthly_end, 
    timestamp(monthsend(2,date)) as bi_monthly_end_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/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:

* `id`
* `date`
* `bi_monthly_end`
* `bi_monthly_end_timestamp`

Tabella dei risultati

| id | date | bi\_monthly\_end | bi\_monthly\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8195 | 5/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

Il campo '`bi_monthly_end`' viene creato nell'istruzione LOAD precedente utilizzando la funzione `monthsend()`. Il primo argomento fornito è `2`, dividendo l'anno in segmenti bimestrali. Il secondo argomento identifica il campo da valutare.

Schema della funzione `monthsend` con segmenti bimestrali.

Schema della funzione `monthsend` con segmenti bimestrali.

Schema della funzione `monthsend`monthsend con segmenti bimestrali. ![Schema che mostra come la funzione monthsend identifichi il segmento bimestrale selezionato.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example1-diagram.png)

La transazione 8195 avviene il 22 maggio. La funzione `monthsend()` divide inizialmente l'anno in segmenti bimestrali. La transazione 8195 rientra nel segmento tra il 1 maggio e il 30 giugno. Di conseguenza, la funzione restituisce l'ultimo millisecondo di questo segmento, il 30/06/2022 alle 23:59:59.

## Esempio 2 - period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.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 compito è quello di creare un campo, '`prev_bi_monthly_end`', che restituisca il primo millisecondo del segmento bimestrale prima che avvenga la transazione.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthsend(2,date,-1) as prev_bi_monthly_end, 
    timestamp(monthsend(2,date,-1)) as prev_bi_monthly_end_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/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:

* `id`
* `date`
* `prev_bi_monthly_end`
* `prev_bi_monthly_end_timestamp`

Tabella dei risultati

| id | date | prev\_bi\_monthly\_end | prev\_bi\_monthly\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8189 | 1/19/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8190 | 2/5/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8191 | 2/28/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8195 | 5/22/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |

Utilizzando `-1` come argomento `period_no` della funzione `monthsend()`, dopo aver inizialmente diviso un anno in segmenti bimestrali, la funzione restituisce l'ultimo millisecondo del segmento bimestrale precedente al momento in cui avviene una transazione.

Schema della funzione `monthsend` che restituisce il segmento bimestrale precedente.

Schema della funzione `monthsend` che restituisce il segmento bimestrale precedente.

Schema della funzione `monthsend`monthsend che restituisce il segmento bimestrale precedente. ![Schema della funzione monthend con un period_no negativo che restituisce il segmento bimestrale precedente.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example2-diagram.png)

La transazione 8195 è stata effettuata nel segmento tra maggio e giugno. Di conseguenza, il segmento bimestrale precedente era compreso tra il 1° marzo e il 30 aprile e quindi la funzione restituisce l'ultimo millisecondo di questo segmento, il 30/04/2022 alle 23:59:59.

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.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 aprile sia il primo mese dell'anno finanziario.

Creare un campo, `bi_monthly_end`, che raggruppa le transazioni in segmenti bimestrali e restituisce il timestamp dell'ultimo millisecondo di quel segmento per ogni transazione.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthsend(2,date,0,4) as bi_monthly_end, 
    timestamp(monthsend(2,date,0,4)) as bi_monthly_end_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/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:

* `id`
* `date`
* `bi_monthly_end`
* `bi_monthly_end_timestamp`

Tabella dei risultati

| id | date | bi\_monthly\_end | bi\_monthly\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8195 | 5/22/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 11/30/2022 | 11/30/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 11/30/2022 | 11/30/2022 11:59:59 PM |

Utilizzando `4` come argomento `first_month_of_year` nella funzione `monthsend()`, la funzione inizia l'anno il 1 aprile, quindi divide l'anno in segmenti bimestrali: Apr-Mag, Giu-Lug, Ago-Set, Ott-Nov, Dic-Gen, Feb-Mar.

Schema della funzione `monthsend` con il primo mese dell'anno impostato come aprile

Schema della funzione `monthsend` con il primo mese dell'anno impostato come aprile

Schema della funzione `monthsend`monthsend con il primo mese dell'anno impostato come aprile ![Schema della funzione monthend con segmenti bimestrali e aprile impostato come primo mese dell'anno.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example3-diagram.png)

La transazione 8195 è avvenuta il 22 maggio e rientra nel segmento tra il 1 aprile e il 31 maggio. Di conseguenza, la funzione restituisce l'ultimo millisecondo di questo segmento, il 31/05/2022 alle 23:59:59.

## Esempio 4 – Esempio di oggetto grafico

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.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.

In questo esempio, si tratta di creare un calcolo che raggruppi le transazioni in segmenti bimestrali e restituisca il timestamp dell'ultimo millisecondo del segmento per ciascuna transazione come una misura in un oggetto grafico di un'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 ottenere il timestamp dell'ultimo millisecondo del segmento bimestrale in cui è avvenuta la transazione, creare le seguenti misure:

* `=monthsEnd(2,date)`
* `=timestamp(monthsend(2,date))`

Tabella dei risultati

| id | date | =monthsend(2,date) | =timestamp(monthsend(2,date)) |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8195 | 5/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

Il campo '`bi_monthly_end`' viene creato come misura nell'oggetto grafico mediante l'utilizzo della funzione `monthsend()`. Il primo argomento fornito è `2`, che divide l'anno in segmenti bimestrali. Il secondo argomento identifica il campo da valutare.

Schema della funzione `monthsend` con segmenti bimestrali.

Schema della funzione `monthsend` con segmenti bimestrali.

Schema della funzione `monthsend`monthsend con segmenti bimestrali. ![Schema che mostra come la funzione monthsend identifichi il segmento bimestrale selezionato mediante un oggetto grafico.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example4-diagram.png)

La transazione 8195 avviene il 22 maggio. La funzione `monthsend()` divide inizialmente l'anno in segmenti bimestrali. La transazione 8195 rientra nel segmento tra il 1 maggio e il 30 giugno. Di conseguenza, la funzione restituisce il primo millisecondo di questo segmento, il 30/06/2022 alle 23:59:59.

## Esempio 5 – Scenario

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

#### Script di caricamento e risultati

Panoramica

Aprire l'editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

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

* ID dipendenti

* Nomi dipendenti

* La media delle richieste di rimborso spese giornaliero di ciascun dipendente.

L'utente finale desidera un grafico che visualizzi, in base all'id e al nome del dipendente, la spesa stimata per il resto di un periodo di propria scelta. L'esercizio finanziario inizia a gennaio.

Script di caricamento

```
SET vPeriod = 1; 

Employee_Expenses: 
Load 
* 
Inline  
[ 
employee_id,employee_name,avg_daily_claim 
182,Mark, $15 
183,Deryck, $12.5  
184,Dexter, $12.5 
185,Sydney,$27 
186,Agatha,$18 
]; 
```

Risultati

Caricare i dati e aprire un nuovo 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 quanto segue:

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

Creare una nuova tabella con tali campi come dimensioni:

* employee\_id

* employee\_name

Per calcolare gli interessi accumulati, creare questa misura:

```
=floor(monthsend($(vPeriod),today(1))-today(1))*avg_daily_claim 
```

Nota informaticaQuesta misura è dinamica e produrrà risultati diversi a seconda della data di caricamento dei dati.

Impostare la misura Formattazione numero su Denaro.

Tabella dei risultati

| employee\_id | employee\_name | =floor(monthsend($(vPeriod),today(1))-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Contrassegno | $1410.00 |
| 183 | Deryck | $1175.00 |
| 184 | Dexter | $1175.00 |
| 185 | Sydney | $2538.00 |
| 186 | Agatha | $1692.00 |

La funzione monthsend() utilizza l'input dell'utente come primo argomento e la data odierna come secondo argomento. Restituisce la data di fine del periodo di tempo selezionato dall'utente. Quindi, l'espressione restituisce il numero di giorni che rimangono nel periodo di tempo selezionato, sottraendo la data odierna da questa data finale.

Questo valore viene quindi moltiplicato per la media delle richieste di rimborso spese giornaliere di ciascun dipendente per calcolare il valore stimato delle richieste che ogni dipendente dovrebbe presentare durante i giorni rimanenti di questo periodo.