# inmonth - funzione dello script e del grafico

Questa funzione restituisce True se timestamp ricade all'interno del mese contenente base\_date.

Sintassi:

InMonth (timestamp, base\_date, period\_no)

Schema della funzione `indaytotime`.

Schema della funzione `indaytotime`.

Schema della funzione `indaytotime`indaytotime. ![Diagramma che mostra le condizioni della funzione inmonth.](https://help.qlik.com/it-IT/sense/November2024/Subsystems/Hub/Content/Resources/Images/dr_Diagram_InMonth.png)

In pratica, la funzione `inmonth()` determina se un insieme di date rientra in questo mese e restituisce un valore booleano basato su un valore `base_date` che identifica il mese.

Casi di utilizzo

La funzione `inmonth()` 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 se una data si è verificata durante quel mese, inclusa la data in questione.

Ad esempio, la funzione `inmonth()` può essere utilizzata per identificare tutte le apparecchiature prodotte in un determinato giorno.

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 |
| --- | --- |
| data e ora | La data da confrontare con `base_date`. |
| base\_date | La data utilizzata per valutare il mese. È importante notare che `base_date` può essere qualsiasi giorno entro un mese. |
| period\_no | Il mese può essere differito mediante `period_no`. `period_no` è un numero intero, in cui il valore 0 indica il mese che contiene `base_date`. I valori negativi di `period_no` indicano i mesi precedenti, mentre i valori positivi indicano i mesi successivi. |

## 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 |
| --- | --- |
| ` inmonth ('25/01/2013', '01/01/2013', 0)  ` | Restituisce True |
| `inmonth('25/01/2013', '23/04/2013', 0)` | Restituisce False |
| ` inmonth ('25/01/2013', '01/01/2013', -1)  ` | Restituisce False |
| ` inmonth ('25/12/2012', '17/01/2013', -1)  ` | Restituisce True |

## Esempio 1 - Nessun argomento aggiuntivo

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

#### Script di caricamento e risultati

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 per la prima metà del 2022.

* Un'istruzione di caricamento precedente con una variabile aggiuntiva, '`in_month`', che determina se le transazioni sono state effettuate nel mese di aprile.

Script di caricamento

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

Transactions: 
  Load 
    *, 
    inmonth(date,'04/01/2022', 0) as in_month 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77 
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`
* `in_month`

Esempi di funzioni

| data | in\_month |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | 0 |
| 2/2/2022 | 0 |
| 2/20/2022 | 0 |
| 4/11/2022 | -1 |
| 4/13/2022 | -1 |
| 4/15/2022 | -1 |
| 4/25/2022 | -1 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

Il campo '`in_month`' viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione inmonth() e trasferendo il campo della data, una data con hard coding per il primo aprile `base_date` e un `period_no` di `0` come argomenti della funzione.``

`base_date` identifica il mese che restituirà un risultato booleano TRUE. Pertanto, tutte le transazioni avvenute ad aprile restituiscono il valore TRUE, che viene convalidato nella tabella dei risultati.

## Esempio 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonth.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, bisogna creare un campo, "`2_months_prior`", che determina se le transazioni sono state effettuate due mesi prima di aprile.

Script di caricamento

```
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
Load 
   *, 
   inmonth(date,'04/01/2022', -2) as [2_months_prior] 
Inline  
[ 
id,date,amount 
8188,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`
* `2_months_prior`

Esempi di funzioni

| data | 2\_months\_prior |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | -1 |
| 2/2/2022 | -1 |
| 2/20/2022 | -1 |
| 4/11/2022 | 0 |
| 4/13/2022 | 0 |
| 4/15/2022 | 0 |
| 4/25/2022 | 0 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

L'utilizzo di -2 come argomento `period_no` nella funzione `inmonth()` sposta il mese definito dall'argomento `base_date` due mesi prima. In questo esempio, il mese definito viene cambiato da aprile a febbraio.

Pertanto, qualsiasi transazione avvenuta a febbraio restituirà un risultato booleano TRUE.

## Esempio 3 - Oggetto grafico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonth.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 tra ad aprile 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,'1/10/2022',37.23 
8189,'1/14/2022',17.17 
8190,'1/20/2022',88.27 
8191,'1/22/2022',57.42 
8192,'2/1/2022',53.80 
8193,'2/2/2022',82.06 
8194,'2/20/2022',40.39 
8195,'4/11/2022',87.21 
8196,'4/13/2022',95.93 
8197,'4/15/2022',45.89 
8198,'4/25/2022',36.23 
8199,'5/20/2022',25.66 
8200,'5/22/2022',82.77 
8201,'6/19/2022',69.98 
8202,'6/22/2022',76.11 
]; 
```

Oggetto grafico

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

`date`

Per calcolare se una transazione è avvenuta ad aprile, creare la seguente misura:

`=inmonth(date,'04/01/2022', 0)`

Risultati

Esempi di funzioni

| data | =inmonth(date,'04/01/2022', 0) |
| --- | --- |
| 1/10/2022 | 0 |
| 1/14/2022 | 0 |
| 1/20/2022 | 0 |
| 1/22/2022 | 0 |
| 2/1/2022 | 0 |
| 2/2/2022 | 0 |
| 2/20/2022 | 0 |
| 4/11/2022 | -1 |
| 4/13/2022 | -1 |
| 4/15/2022 | -1 |
| 4/25/2022 | -1 |
| 5/20/2022 | 0 |
| 5/22/2022 | 0 |
| 6/19/2022 | 0 |
| 6/22/2022 | 0 |

## Esempio 4 – Scenario

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

#### Script di caricamento e risultati

Panoramica

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

* Product ID

* Manufacture date

* Cost price

A causa di un errore dell'attrezzatura, i prodotti fabbricati nel mese di luglio 2022 erano difettosi. Il problema è stato risolto il 27 luglio 2022.

L'utente finale desidera un grafico che visualizzi, per mese, lo stato dei prodotti fabbricati "difettosi" (valore booleano TRUE) o "non difettosi" (valore booleano FALSE), oltre al il costo dei prodotti fabbricati quel mese.

Script di caricamento

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price 
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:

`=monthname(manufacture_date)`

Creare le seguenti misure:

* `=sum(cost_price)`

* `=if(only(inmonth(manufacture_date,makedate(2022,07,01),0)),'Defective','Faultless')`

1. Impostare la misura Formattazione numero su Denaro.

2. In Aspetto, disattivare Totals.

Tabella dei risultati

| monthname(manufacture\_date) | =if(only(inmonth(manufacture\_date,makedate(2022,07,01),0)),'Defective','Faultless') | =sum(cost\_price) |
| --- | --- | --- |
| Gen 2022 | Non difettoso | $54.40 |
| Feb 2022 | Non difettoso | $145.69 |
| Mar 2022 | Non difettoso | $53.80 |
| Apr 2022 | Non difettoso | $82.06 |
| May 2022 | Non difettoso | $127.60 |
| Jun 2022 | Non difettoso | $141.82 |
| Jul 2022 | Difettoso | $214.64 |
| Aug 2022 | Non difettoso | $147.46 |
| Sep 2022 | Non difettoso | $84.21 |
| Oct 2022 | Non difettoso | $163.91 |

La funzione `inmonth()` restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato nel mese di luglio 2022, la funzione `inmonth()` restituisce un valore booleano TRUE e contrassegna i prodotti come "difettosi". I prodotti che restituiscono un valore FALSE, e che quindi non sono stati fabbricati a luglio, vengono contrassegnati come "non difettosi".