# if Funzione per script e grafici

La funzione if restituisce un valore a seconda che la condizione fornita con la funzione esegua la valutazione come True o come False.

[If Function](https://play.vidyard.com/qnkaRddq32LnAGUTTDGdLA)

Sintassi:

if(condition , then [, else])

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| condition | Espressione interpretata in modo logico. |
| then | Espressione che può essere di qualsiasi tipo. Se condition è True, quindi la funzione if restituisce il valore dell'espressione then. |
| else | Espressione che può essere di qualsiasi tipo. Se condition è False, quindi la funzione if restituisce il valore dell'espressione else.<br><br>Questo parametro è facoltativo. Se condition è False, verrà restituito NULL se non si è specificato else. |

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | Questa espressione verifica se l'importo è un numero positivo (0 o superiore) e restituisce `OK` se lo è. Se l'importo è inferiore a 0, viene restituito `Alarm`. |

Alcuni degli esempi in questo argomento utilizzano caricamenti inline. [Utilizzo dei caricamenti inline per caricare i dati](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Esempio - Script di caricamento usando if

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

#### Script di caricamento

Panoramica

L'istruzione If può essere utilizzata in uno script di caricamento con altri metodi e oggetti, comprese le variabili. Questo esempio utilizza la variabile `threshold` e include un nuovo campo nel modello dati basato sulla soglia.

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 due tabelle dati denominate:

  * `Transactions`: include i campi delle transazioni

  * `Transaction_Buckets`: include un campo `transaction_id` e crea un nuovo campo, `[Compared to Threshold]`, utilizzando la funzione `if` per confrontare il campo `transaction_amount` con l'impostazione della variabile `threshold`.

* Un'istruzione di variabile `threshold` impostata su `100`.

Script di caricamento

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
set threshold = 100;
					
/* Create new table called Transaction_Buckets 
Compare transaction_amount field from Transaction table to threshold of 100.
Output results into a new field called Compared to Threshold
 */

Transaction_Buckets:
Load
   transaction_id,
   If(transaction_amount > $(threshold),'Greater than $(threshold)','Less than $(threshold)') as [Compared to Threshold]
Resident Transactions;
```

Risultati

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

* `transaction_id`

* `[Compared to Threshold]`

La tabella dei risultati che mostra l'output derivante dall'utilizzo della funzione ifif nello script di caricamento.

| transaction\_id | In confronto alla soglia |
| --- | --- |
| 3750 | Inferiore a 100 |
| 3751 | Superiore a 100 |
| 3752 | Inferiore a 100 |
| 3753 | Superiore a 100 |
| 3754 | Superiore a 100 |
| 3756 | Inferiore a 100 |
| 3757 | Superiore a 100 |

## Esempio: valutazione dei dati dei prodotti utilizzando la funzione if

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati dei prodotti.Si desidera identificare e classificare i prodotti classificandoli come di prodotti di consumo o meno.

Script di caricamento

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 dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "Fruits"
3, "Shampoo", "Toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits"
];
```

Risultati

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

* `ProductID`

* `ProductName`

* `ProductCategory`

Creare la seguente misura:

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`, per restituire i valori richiesti.

Tabella dei risultati

| ProductID | ProductName | ProductCategory | If(ProductCategory = 'Toiletries' or ProductCategory = 'Fruits', 'Consumable', 'Other') |
| --- | --- | --- | --- |
| 1 | Laptop | Electronics | Other |
| 2 | Banana | Fruits | Consumable |
| 3 | Shampoo | Toiletries | Consumable |
| 4 | TV | Electronics | Other |
| 5 | Apple | Fruits | Consumable |

Dai risultati si può vedere che la funzione `if` valuta l'espressione e restituisce i valori richiesti. Per esempio, i prodotti della categoria `Fruits` o `Toiletries` sono classificati come `Consumable`.

## Esempio: valutazione e classificazione dei dati dei clienti utilizzando la funzione if

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati dei clienti.Si desidera identificare e classificare i clienti la cui regione e categoria aziendale soddisfano i requisiti di classificazione della propria organizzazione.

Script di caricamento

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 dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "North", "Manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "West", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "Healthcare"
];
```

Risultati

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

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Creare la seguente misura:

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, per restituire il valore richiesto.

Tabella dei risultati

| ClientID | ClientName | Region | Industry | If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | North | Manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | West | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | Sound | Healthcare | Secondary Segment |

Dai risultati si può vedere che la funzione `if` valuta l'espressione e restituisce i valori richiesti. Ad esempio, `Acme Corp` è classificato come `Target Segment` perché soddisfa i requisiti per far parte della regione `North` o `East` e del settore `Manufacturing` o `Technology`.

## Esempio: valutazione dei dati degli incidenti utilizzando la funzione if

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

#### Espressione del grafico

Panoramica

Utilizzare la funzione if per categorizzare un set di dati con i report sugli incidenti.

Script di caricamento

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 dati chiamata Example.

* I seguenti campi nella tabella dati:

  * Date

  * Location

  * Incidents

```
Example:
LOAD * inline [
Date, Location, Incidents
1/3/2016, Beijing, 0
1/3/2016, Boston, 12
1/3/2016, Stockholm, 3
1/3/2016, Toronto, 0
1/4/2016, Beijing, 0
1/4/2016, Boston, 8];
```

Risultati

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

* Data

* Posizione

* Incidenti

Creare le seguenti dimensioni calcolate:

* =if(Incidents&gt;=10, 'Critical', 'Ok' )

* =if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok'))

Tabella dei risultati

| Date | Location | Incidents | if(Incidents&gt;=10, 'Critical', 'Ok' ) | if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok')) |
| --- | --- | --- | --- | --- |
| 1/3/2016 | Beijing | 0 | Ok | Ok |
| 1/3/2016 | Boston | 12 | Critical | Critical |
| 1/3/2016 | Stockholm | 3 | Ok | Warning |
| 1/3/2016 | Toronto | 0 | Ok | Ok |
| 1/4/2016 | Beijing | 0 | Ok | Ok |
| 1/4/2016 | Boston | 8 | Ok | Warning |

## Esempio: categorizzazione delle date utilizzando la funzione if

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

#### Espressione del grafico

Panoramica

Utilizzare la funzione if per classificare le date.

Script di caricamento

Aprire Editor caricamento dati, quindi aggiungere lo script di caricamento in basso in una nuova sezione.

```
SET FirstWeekDay=0;
Load 
Date(MakeDate(2022)+RecNo()-1) as Date
Autogenerate 14;
```

Risultati

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

* Date

Creare le seguenti dimensioni calcolate:

* WeekDay(Date)

* =If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day')

Tabella dei risultati

| Date | WeekDay(Date) | If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day') |
| --- | --- | --- |
| 1/1/2022 | Sat | WeekEnd |
| 1/2/2022 | Sun | WeekEnd |
| 1/3/2022 | Mon | Normal Day |
| 1/4/2022 | Tue | Normal Day |
| 1/5/2022 | Wed | Normal Day |
| 1/6/2022 | Thu | Normal Day |
| 1/7/2022 | Fri | Normal Day |
| 1/8/2022 | Sat | WeekEnd |
| 1/9/2022 | Sun | WeekEnd |
| 1/10/2022 | Mon | Normal Day |
| 1/11/2022 | Tue | Normal Day |
| 1/12/2022 | Wed | Normal Day |
| 1/13/2022 | Thu | Normal Day |
| 1/14/2022 | Fri | Normal Day |