# Num# - Funzione per script e grafici

Num#() interpreta una stringa di testo come un valore numerico, ovvero converte la stringa di input in un numero usando il formato specificato nel secondo parametro. Se il secondo parametro viene omesso, utilizza i separatori decimali e delle migliaia impostati nello script di caricamento dei dati. I simboli dei separatori decimali e delle migliaia personalizzati sono parametri opzionali.

Sintassi:

Num#(text[, format[, dec\_sep [, thou\_sep ] ] ])

Tipo di dati restituiti: duale

La funzione Num#() restituisce un valore duale contenente sia la stringa che il valore numerico. La funzione prende la rappresentazione testuale dell'espressione di input e genera una stringa che rappresenta il numero. Non modifica il formato del numero; l'output viene formattato nello stesso modo dell'input.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| text | La stringa di testo da valutare. |
| format | Stringa che specifica il formato numerico utilizzato nel primo parametro. Se omessi, verranno utilizzati i separatori di decimali e migliaia impostati nello script di caricamento dei dati.<br><br>La funzione `Num#` supporta molte opzioni di formato per diverse strutture numeriche, ad esempio:<br><br>`#,##0`: ​visualizza un numero senza cifre decimali.<br><br>`#,##0.00`: ​visualizza un numero con due cifre decimali.<br><br>`##0.00%`: ​visualizza un numero come una percentuale con due cifre decimali.<br><br>`​#,##0;(#,##0)`: formatta i numeri negativi in modo da essere visualizzati tra parentesi.<br><br>`$#,##0.00`: formatta i numeri come valuta con il simbolo $.<br><br>`​0.00E+0`: visualizza i numeri in una notazione scientifica. |
| dec\_sep | Stringa che specifica il separatore decimale dei numeri. Se omesso, viene utilizzato il valore della variabile DecimalSep impostato nello script di caricamento dei dati.<br><br>La funzione `Num#` supporta molti formati per il separatore decimale, ad esempio:<br><br>Virgola ​'`,` ': ad esempio, `$1,000,00` per mille dollari.<br><br>Punto '`.`':​ ad esempio, `€ 1,000.00`.<br><br>Trattino '`-`': se utilizzato al posto del punto o della virgola, utilizzati di norma per il separatore decimale, mostra valori come `¥1,000-00`.<br><br>​Per ulteriori informazioni, vedere [DecimalSep](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm). |
| thou\_sep | Stringa che specifica il separatore delle migliaia dei numeri. Se omesso, viene utilizzato il valore della variabile ThousandSep impostato nello script di caricamento dei dati.<br><br>La funzione `Num#` supporta molte opzioni per il separatore delle migliaia:<br><br>Punto ​' `.` ': utilizza un punto per il separatore di migliaia (comune in alcuni formati europei), visualizzandolo come `$1.000,00` se combinato con una virgola come separatore decimale.<br><br>Spazio ​' ': utilizza uno spazio per il separatore delle migliaia, che è comune in alcuni Paesi europei. Viene visualizzato come `€ 1 000.00`.<br><br>Trattino basso ​'`_`':​ utilizza un trattino basso per il separatore delle migliaia, che a volte viene utilizzato in formati tecnici o regionali specifici. Visualizza valori come `$1_000.00`.<br><br>​Per ulteriori informazioni, vedere [ThousandSep](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Esempio: espressioni dei grafici

| Esempio | Risultati (valore stringa restituito) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Restituisce la stringa `35,648.31` e il valore numerico `35648.31`. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Restituisce la stringa `35 648.312` e il valore numerico `35648.312`. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Restituisce la stringa `35.648,3123` e il valore numerico ` NULL  `(`-`). |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Restituisce la stringa `35 648,31234` e il valore numerico ` NULL  `(`-`). |
| `Num#('1,234.56', '#,##0.00')` | Restituisce la stringa `1,234.56` e il valore numerico `1230.45`. |
| `Num#('$1,230.45', '$#,##0.00')` | Restituisce la stringa `$1,230.45` e il valore numerico `1234.56`. |
| `Num#('20220315', 'YYYYMMDD')` | Restituisce la stringa `20220315` e il valore numerico `20220315`. |

## Esempio: principi fondamentali della funzione Num\#

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

#### Script di caricamento

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

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`

* Le impostazioni standard per `ThousandSep` e `DecimalSep` illustrano questo esempio.

* Un caricamento precedente che utilizza la funzione `Num#`. Quando viene eseguito, crea un campo aggiuntivo denominato `FormattedSalesAmount`.

Script di caricamento

```
SET ThousandSep=',';
SET DecimalSep='.';
Example:
LOAD
ProductID,
ProductName,
SalesAmount,
Num#(SalesAmount, '#.##0,00',',','.') AS FormattedSalesAmount
INLINE [
ProductID, ProductName, SalesAmount
1, Product A, '1.234,56'
2, Product B, '2.456,78'
3, Product C, '345,67'
4, Product D, '987,12'
5, Product E, '1.200,45'
];
```

Risultati

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

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Creare la seguente misura:

* `=Num(FormattedSalesAmount)`, per visualizzare il valore numerico del campo in base alle impostazioni di sistema per il formato numerico.

Results table

| ProductID | ProductName | SalesAmount | FormattedSalesAmount | Num(FormattedSalesAmount) |
| --- | --- | --- | --- | --- |
| 1 | Product A | 1.234,56 | 1.234,56 | 1234.56 |
| 2 | Product B | 2.456,78 | 2.456,78 | 2456.78 |
| 3 | Product C | 345,67 | 345,67 | 345.67 |
| 4 | Product D | 987,12 | 987,12 | 987.12 |
| 5 | Product E | 1.200,45 | 1.200,45 | 1200.45 |

In questo esempio è possibile osservare come la funzione `Num#` converte i dati `SalesAmount` dal formato testuale originale in un valore numerico.

## Esempio: scenario per la funzione Num\#

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

#### Script di caricamento

Panoramica

Un set di dati contiene i dati sulle vendite di diversi Paesi in diversi formati di testo. Bisogna standardizzare i dati e visualizzarli in una tabella.

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:

  * `Country`

  * `Product`

  * `Amount`

* Un caricamento precedente che utilizza la funzione `Num#` per convertire i valori del campo `Amount`.

Script di caricamento

```
Example:
LOAD
Country,
Product,
IF(Country = 'Germany', Num#(Amount, '#.##0,00', ',', '.'), Num#(Amount, '#,##0.00')) AS Amount
INLINE [
Country, Product, Amount
Germany, Product A, '1.234,56'
USA, Product B, '2,345.78'
Germany, Product C, '987,12'
USA, Product D, '1,200.45'
Germany, Product E, '345,67'
];
```

Risultati

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

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Creare la seguente misura:

* `Num(Amount)`, per visualizzare il valore numerico del campo `Amount` come set nelle impostazioni di sistema per il formato numerico.

Results table

| Product | Country | Amount | Num(Amount) |
| --- | --- | --- | --- |
| Customer A | Germany | 1.234,56 | 1234.56 |
| Customer B | USA | 2,345.78 | 2345.78 |
| Customer C | Germany | 987,12 | 987.12 |
| Customer D | USA | 1,200.45 | 1200.45 |
| Customer E | Germany | 345,67 | 345.67 |

Confrontando la colonna `Amount` con la colonna `Num(Amount)`, si nota che i dati presentati utilizzando la funzione `  Num# ` modificano i valori numerici sottostanti, ma mantengono il formato della stringa. Ad esempio, tutti i valori per `Germany` nella colonna `Amount` utilizzano una virgola come separatore decimale, ma il formato sottostante in `Num(Amount)` utilizza un punto per tutti i valori.