# alt Funzione per script e grafici

La funzione alt restituisce il primo dei parametri che presenta una rappresentazione numerica valida. Se nessuna corrispondenza viene trovata, verrà restituito l'ultimo parametro. Può essere utilizzato un numero qualsiasi di parametri.

Sintassi:

alt(expr1[ , expr2 , expr3 , ...] , else)

Tipo di dati restituiti: numero intero

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr1 | La prima espressione da controllare per una valida rappresentazione numerica. |
| expr2 | La seconda espressione da controllare per una valida rappresentazione numerica. |
| expr3 | La terza espressione da controllare per una valida rappresentazione numerica. |
| else | Valore restituito se nessuno dei parametri precedenti ha una valida rappresentazione numerica. |

La funzione alt viene spesso utilizzata con le funzioni di interpretazione numerica o della data. In questo modo Qlik Sense può provare differenti formati di data in un ordine con priorità. Può anche essere utilizzata per gestire valori NULL in espressioni numeriche.

Esempio: espressioni dei grafici

| Esempio | Risultato |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | Questa espressione verificherà se la data del campo contiene una data conforme a uno dei tre formati specificati. In tal caso, restituirà un valore duale contenente la stringa originale e una rappresentazione numerica valida di una data. Se non viene trovata nessuna corrispondenza, verrà restituito il testo `No valid date` (senza alcuna rappresentazione numerica valida). |
| `alt(Sales,0) + alt(Margin,0)` | L'espressione aggiunge i campi `Sales` e `Margin`, sostituendo qualsiasi valore mancante (NULL) con il valore `0`. |

## Esempio: principi fondamentali della funzione alt

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

#### Espressione del grafico

Panoramica

Un set di dati contiene dati incompleti sulle vendite e sulle previsioni. Si desidera sostituire i valori mancanti con valori alternativi validi per colmare le lacune.

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:

  * `ID`

  * `Sales`

  * `Forecast`

Script di caricamento

```
Example:
LOAD * INLINE [
ID, Sales, Forecast
1, 500, 450
2, , 300
3, 200, 250
4, , 400
5, 350,
];
```

Risultati

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

* `ID`

* `Sales`

* `Forecast`

Creare la seguente misura:

* `=Sum(alt(Sales, Forecast))` per restituire una rappresentazione numerica valida, sostituendo i valori mancanti con valori alternativi validi.

Tabella dei risultati

| ID | Sales | Forecast | Sum(alt(Sales, Forecast)) |
| --- | --- | --- | --- |
| Totals |  |  | 1750 |
| 1 | 500 | 450 | 500 |
| 2 |  | 300 | 300 |
| 3 | 200 | 250 | 200 |
| 4 |  | 400 | 400 |
| 5 | 350 |  | 350 |

La funzione `alt` restituisce il valore `Forecast` nel calcolo della misura per le righe `ID` con i valori `Sales` mancanti. Sostituendo i valori mancanti con valori alternativi validi, è possibile generare un set di dati completamente popolato.

## Esempio: utilizzo di alt per sostituire i valori mancanti

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

#### Espressione del grafico

Panoramica

Un'azienda raccoglie i dati relativi alla temperatura da più sensori. Si desidera sostituire i dati mancanti di un sensore con i dati dell'altro sensore.

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:

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

Script di caricamento

```
Example:
LOAD * INLINE [
Time, Temp_Sensor1, Temp_Sensor2
08:00, 23.5, 24.0
09:00, , 23.8
10:00, 24.1,
11:00, , 24.5
12:00, 23.9, 24.1
];
```

Risultati

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

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

Creare la seguente misura:

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))` per restituire una rappresentazione numerica valida.

Tabella dei risultati

| Time | Temp\_Sensor1 | Temp\_Sensor2 | Sum(alt(Temp\_Sensor1, Temp\_Sensor2)) |
| --- | --- | --- | --- |
| Totals |  |  | 119.8 |
| 08:00 | 23.5 | 24.0 | 23.5 |
| 09:00 |  | 23.8 | 23.8 |
| 10:00 | 24.1 |  | 24.1 |
| 11:00 |  | 24.5 | 24.5 |
| 12:00 | 23.9 | 24.1 | 23.9 |

Osservando i risultati, la funzione `alt` ha sostituito i dati mancanti del sensore con risultati alternativi validi dell'altro sensore. Questo consente di completare il set di dati riempiendo le lacune.

## Esempio: scenario per l'applicazione della funzione alt

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

#### Espressione del grafico

Panoramica

Questo scenario mostra diversi modi in cui è possibile utilizzare la funzione `alt` per sostituire i valori mancanti o null.

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`

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

Script di caricamento

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, SalesAmount, ReturnAmount, Profit, Discount, Category, Year, Region, CustomerRating
101, "Laptop", 1200, 200, 500, , "Electronics", 2023, "North",
102, "Tablet", 800, , 300, 50, "Electronics", 2023, "South", 4
103, "Smartphone", 1500, , 600, 100, , 2022, "East", 5
104, "Printer", 400, , , 20, "Accessories", 2021, , 3
105, , 1000, 100, , 30, "Electronics", 2023, "West", 4
106, "Monitor", , 150, 250, , "Accessories", 2022, "North", 5
107, "Keyboard", 200, , 80, 5, , 2022, "South", 2
108, "Mouse", , 50, , , "Accessories", , "East",
109, , 600, , , , "Electronics", 2023, , 4
110, "Headphones", 300, 30, 100, , "Accessories", 2021, "West", 3
];
```

Risultati

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

* `ProductID`

Creare la seguente dimensione calcolata:

* `=Coalesce( ProductName,  'Unknown Product')`, per fornire la descrizione `Unknown Product` per tutti i prodotti che non hanno un valore per `ProductName`.

Creare le seguenti misure:

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`, per restituire un numero valido se non viene trovato nessun valore per `SalesAmount`.

* `=avg(alt(CustomerRating, 3))`, per restituire una valutazione standard valida del cliente, se non è stata fornita inizialmente.

* `=Sum(alt(Discount, SalesAmount * 0.05))`, per restituire uno sconto valido.

* `=Sum(alt(Profit, SalesAmount * 0.1))`, per restituire un valore valido per gli utili.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`, per restituire un valore valido per le vendite.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`, per restituire un valore valido per lo sconto.

Tabella dei risultati

| ID prodotto | Coalesce( NomeProdotto, 'Prodotto Sconosciuto') | Somma(alt(ImportoVendite, ImportoReso, Profitto)) | media(alt(ValutazioneCliente, 3)) | Somma(alt(Sconto, ImportoVendite \* 0.05)) | Somma(alt(Profitto, ImportoVendite \* 0.1)) | Somma(alt(ImportoVendite, media(TOTALE ImportoVendite))) | Somma(alt(Sconto, media(TOTALE Sconto))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Totali |  | 6200 | 3.6 | 310 | 2030 | 7500 | 410 |
| 101 | Computer portatile | 1200 | 3 | 60 | 500 | 1200 | 41 |
| 102 | Tablet | 800 | 4 | 50 | 300 | 500 | 50 |
| 103 | Smartphone | 1.500 | 5 | 100 | 600 | 800 | 100 |
| 104 | Stampante | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | Prodotto sconosciuto | 1.000 | 4 | 30 | 100 | 1.000 | 30 |
| 106 | Monitoraggio | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | Tastiera | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | Mouse | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | Prodotto sconosciuto | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | Cuffie | 300 | 3 | 15 | 100 | 300 | 41 |

La funzione `alt` assicura che quando mancano dei valori, è possibile calcolare e restituire dei valori alternativi. Osservare i seguenti risultati:

* La colonna 2 utilizza la funzione `Coalesce` per restituire il valore `Unknown Product` per tutti i valori null. La funzione `Alt` non può essere utilizzata perché si applica solo ai valori numerici.

* La colonna 3 restituisce il valore di `SalesAmount`. Se non viene trovato alcun valore, viene restituito il valore `ReturnAmount`. Se non viene trovato il valore `ReturnAmount`, viene restituito il valore `Profit`. Questo aiuta a garantire che la colonna venga popolata con un valore se non è presente alcun valore per `SalesAmount`.

* La colonna 4 restituisce il valore per `CustomerRating`. Se non viene trovato alcun valore, il valore predefinito è `3`. Ad esempio, il prodotto `Laptop` non ha una valutazione dei clienti, quindi viene restituito il valore `3`. La misura calcola quindi la media della colonna.

* La colonna 5 restituisce il valore dello sconto. Se non è disponibile alcun valore, viene calcolato come il 5% del valore `SalesAmount`.

* La colonna 6 restituisce il valore `Profit`. Se non è disponibile alcun valore, viene restituito il 10% per il valore `SalesAmount`.

* La colonna 7 restituisce il valore per `SalesAmount`. Se non viene fornito alcun valore, viene restituita la media di `SalesAmount` per l'intero set di dati. Ad esempio, i prodotti `Monitor` e `Mouse` non hanno alcun valore per `SalesAmount`, quindi entrambi restituiscono `750`, che è la media di tutti i valori di `SalesAmount`.

* La colonna 8 restituisce il valore `Discount`. Se non viene trovato alcun valore, il sistema calcola e restituisce lo sconto medio per l'intero set di dati.