# Num#Fonction de script et de graphique

Num#() interprète une chaîne de texte en une valeur numérique, c'est-à-dire qu'il convertit la chaîne d'entrée en un nombre au format spécifié dans le deuxième paramètre. En cas d'omission du deuxième paramètre, il utilise les séparateurs de décimaux et de milliers définis dans le script de chargement de données. Les symboles personnalisés de séparateur décimal et séparateur des milliers sont des paramètres facultatifs.

Syntaxe :

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

Type de données renvoyé : double

La fonction Num#() renvoie une valeur double comportant à la fois la chaîne et la valeur numérique. La fonction prend la représentation textuelle de l'expression d'entrée et génère un nombre. Elle ne modifie pas le format du nombre ; la sortie est formatée de la même manière que l'entrée.

Arguments

| Argument | Description |
| --- | --- |
| text | Chaîne de texte à évaluer. |
| format | Chaîne spécifiant le format numérique utilisé dans le premier paramètre. En cas d'omission, les séparateurs de décimaux et de milliers définis dans le script de chargement de données sont utilisés.<br><br>La fonction `Num#` supporte de nombreuses options de format pour différentes structures numériques, par exemple :<br><br>`#,##0` : ​affiche un nombre sans décimales.<br><br>`#,##0.00` : ​affiche un nombre avec deux décimales.<br><br>`##0.00%` : ​affiche un nombre sous forme de pourcentage avec deux décimales.<br><br>`​#,##0;(#,##0)` : formate les valeurs négatives de sorte qu'elles apparaissent entre parenthèses.<br><br>`$#,##0.00` : formate les nombres sous forme de devise avec un symbole $.<br><br>`​0.00E+0` : affiche les nombres en notation scientifique. |
| dec\_sep | Chaîne indiquant le séparateur de nombres décimaux. En cas d'omission, la valeur de la variable DecimalSep définie dans le script de chargement de données est utilisée.<br><br>La fonction `Num#` supporte de nombreux formats de séparateurs de nombres décimaux, par exemple :<br><br>Virgule ​« `,` » : par exemple, `$1,000,00` pour mille dollars.<br><br>Point « `.` » :​ par exemple, `€ 1,000.00`.<br><br>Trait d'union « `-` » : lorsqu'il est utilisé à la place du point ou de la virgule traditionnel(le) comme séparateur décimal, il affiche des valeurs telles que `¥1,000-00`.<br><br>​Pour plus d'informations, consultez [DecimalSep](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm). |
| thou\_sep | Chaîne indiquant le séparateur de milliers. En cas d'omission, la valeur de la variable ThousandSep définie dans le script de chargement de données est utilisée.<br><br>La fonction `Num#` supporte de nombreuses options pour le séparateur des milliers :<br><br>Point ​« `.` » : utilise un point comme séparateur des milliers (courant dans certains formats européens), pour un affichage au format `$1.000,00` s'il est combiné avec un séparateur décimal de type virgule.<br><br>Espace ​« » : utilise un espace comme séparateur des milliers, ce qui est courant dans certains pays européens. Affiche la valeur au format `€ 1 000.00`.<br><br>Trait de soulignement ​« `_` » :​ utilise un trait de soulignement comme séparateur des milliers, ce qui est parfois utilisé dans des formats techniques ou régionaux spécifiques. Affiche des valeurs telles que `$1_000.00`.<br><br>​Pour plus d'informations, consultez [ThousandSep](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Exemple : Expressions de graphique

| Exemple | Résultats (valeur de chaîne renvoyée) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Renvoie la chaîne `35,648.31` et la valeur numérique `35648.31`. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Renvoie la chaîne `35 648.312` et la valeur numérique `35648.312`. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Renvoie la chaîne `35.648,3123` et la valeur numérique ` NULL  `(`-`). |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Renvoie la chaîne `35 648,31234` et la valeur numérique ` NULL  `(`-`). |
| `Num#('1,234.56', '#,##0.00')` | Renvoie la chaîne `1,234.56` et la valeur numérique `1230.45`. |
| `Num#('$1,230.45', '$#,##0.00')` | Renvoie la chaîne `$1,230.45` et la valeur numérique `1234.56`. |
| `Num#('20220315', 'YYYYMMDD')` | Renvoie la chaîne `20220315` et la valeur numérique `20220315`. |

## Exemple - Les bases de Num\#

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

#### Script de chargement

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* Les paramètres standards de `ThousandSep` et de `DecimalSep` illustrent cet exemple.

* Instruction Load antérieure qui utilise la fonction `Num#`. Lors de son exécution, cela crée un champ supplémentaire appelé `FormattedSalesAmount`.

Script de chargement

```
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'
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Créez la mesure suivante :

* `=Num(FormattedSalesAmount)`, pour afficher la valeur numérique du champ en fonction des paramètres système du format numérique.

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 |

Dans cet exemple, vous pouvez observer comment la fonction `Num#` convertit les données `SalesAmount` de leur format textuel d'origine en valeur numérique.

## Exemple - Scénario Num\#

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

#### Script de chargement

Vue d'ensemble

Un jeu de données contient des données de ventes de plusieurs pays dans différents formats textuels. Nous voulons normaliser les données et les afficher dans un tableau.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `Country`

  * `Product`

  * `Amount`

* Instruction Load antérieure qui utilise la fonction `Num#` pour convertir les valeurs du champ `Amount`.

Script de chargement

```
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'
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Créez la mesure suivante :

* `Num(Amount)`, pour afficher la valeur numérique du champ `Amount` tel que défini dans les paramètres système du format numérique.

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 |

En comparant la colonne `Amount` à la colonne `Num(Amount)`, vous constatez que les données présentées à l'aide de la fonction `  Num# ` modifient les valeurs numériques sous-jacentes, mais conservent le format de chaîne tel quel. Par exemple, toutes les valeurs de `Germany` dans la colonne `Amount` utilisent une virgule comme séparateur décimal, mais le format sous-jacent dans `Num(Amount)` utilise un point pour toutes les valeurs.