# Money#Fonction de script et de graphique

Money#() convertit une chaîne de texte en valeur monétaire en utilisant le format défini dans le script de chargement ou le système d'exploitation, à moins qu'une chaîne de format ne soit précisée. Les symboles personnalisés de séparateur décimal et séparateur des milliers sont des paramètres facultatifs.

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

double

Arguments

| Argument | Description |
| --- | --- |
| text | Chaîne de texte à évaluer. |
| format | Chaîne décrivant le format d'entrée attendu à utiliser lors de la conversion de la chaîne en intervalle numérique.<br><br>En cas d'omission, la valeur définie dans le script de chargement de données pour `MoneyFormat` est utilisée.<br><br>La fonction `Money#` supporte de nombreuses options de format pour différentes structures monétaires, par exemple :<br><br>​`$#,##0.00` : ajoute un signe dollar et deux décimales.<br><br>`€ #,##0` : ajoute un signe euro sans aucune décimale, avec un espace après le signe euro.<br><br>`​¥#,##0` : ajoute un signe yen japonais sans aucune décimale.<br><br>`$#,##0;($#,##0)` : formate les valeurs négatives entre parenthèses.<br><br>`₣ #.##0,00` : ajoute un signe franc suisse avec des points comme séparateurs des milliers et une virgule pour les décimales (par exemple, `  ₣ 1.000,00 `).<br><br>​`R #,##0.00` : signe rand sud-africain avec deux décimales et un espace après le symbole rand.<br><br>`$ #,##0.000` : ajoute trois décimales au format dollar. |
| dec\_sep | Chaîne indiquant le séparateur de nombres décimaux. En cas d'omission, la valeur `MoneyDecimalSep` définie dans le script de chargement de données est utilisée.<br><br>La fonction `Money#` 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`. |
| thou\_sep | Chaîne indiquant le séparateur de milliers. En cas d'omission, la valeur `MoneyThousandSep` définie dans le script de chargement de données est utilisée.<br><br>La fonction `Money#` 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`. |

La fonction `Money#` se comporte généralement comme la fonction `Num#`, à ceci près qu'elle récupère ses valeurs par défaut pour les séparateurs décimal et des milliers auprès des variables de script pour le format monétaire ou des paramètres système pour la devise.

Exemple : Expressions de graphique

| Exemple | Résultats |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Renvoie `35 648,37 kr` lorsque le paramètre `MoneyFormat` est `# ##0,00 kr`. Les éléments suivants doivent être définis dans votre script de chargement pour que cela soit évalué correctement comme un nombre :<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | Renvoie `$35,648.37` lorsque la valeur suivante est définie :<br><br><ul> <li> <p><code>MoneyFormat</code>correspond à <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Exemple - Les bases de Money\#

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/money_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 :

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

* Champ dans la table de données portant le nom `MoneyValue`.

* Instruction LOAD antérieure qui utilise la fonction `Money#` pour convertir les valeurs textuelles des données en valeur que Qlik Sense reconnaîtra comme une valeur valide.

Script de chargement

```
SET MoneyFormat='$ #,##0.00';
SET MoneyThousandSep=',';
Example:
Load *, Money#(MoneyValue, '# ##0,00 kr',',',' ') as FormattedMoneyValue;
Load * inline [
MoneyValue
35 648,37 kr
56 735,56 kr
] (delimiter is ';');
```

Résultats

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

* `MoneyValue`

* `FormattedMoneyValue`

Créez les mesures suivantes :

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )`, pour afficher la valeur en devise, formatée à l'aide des arguments définis dans la fonction `Money`.

* `=Num(FormattedMoneyValue)`, pour renvoyer la valeur numérique après son traitement par la fonction `Money#`.

Results table

| MoneyValue | FormattedMoneyValue | Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' ) | Num(FormattedMoneyValue) |
| --- | --- | --- | --- |
| 56 735,56 kr | 56 735,56 kr | kr 56,736 | 56735.56 |
| 35 648,37 kr | 35 648,37 kr | kr 35,648 | 35648.37 |

Le tableau de résultats montre comment les valeurs peuvent être affichées en utilisant les fonctions et le format suivants : `Money#`, `Money` et `Num`. La deuxième colonne montre la dimension `FormattedMoneyValue`, qui a été calculée à l'aide de la fonction `Money#` pour convertir la valeur en devise au format `'# ##0,00 kr',',',' '`. La troisième colonne utilise la fonction `Money` pour remplacer le format monétaire `FormattedMoneyValue` par `'kr #,##0', '.' , ','`. La quatrième colonne utilise la fonction `Num` pour afficher la valeur numérique de la dimension `FormattedMoneyValue` à l'aide du format de la variable système.

## Exemple - Scénario Money\#

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

#### Script de chargement

Vue d'ensemble

Un jeu de données de commandes contient des champs qui utilisent des devises différentes. Cet exemple vous montre comment séparer et additionner les valeurs des ventes en fonction de la devise.

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 :

  * `TransactionID`

  * `Currency`
  * `Amount`

* Variables système `MoneyDecimalSep`, `MoneyFormat` et `MoneyThousandSep` définies de sorte à utiliser un format différent de celui utilisé dans les données à des fins de démonstration.

* Instruction preceding LOAD qui charge les champs `TransactionID`, `Currency` et `Amount` et crée le champ suivant :

  * `AmountValue`. Ce champ utilise la fonction `Money#` pour convertir le texte qu'il reçoit en une valeur compréhensible par le système.

Script de chargement

```
SET MoneyDecimalSep='-';
SET MoneyFormat='###0-00';
SET MoneyThousandSep=';';
Example:
LOAD
TransactionID,
Currency,
Amount,
IF(Currency = 'USD', Money#(Amount, '$#,##0.00','.',','),
IF(Currency = 'EUR', Money#(Amount, '€ #.##0,00',',','.'))) AS AmountValue
INLINE [
TransactionID, Currency, Amount
"TXN001", "USD", "$ 1,500.00"
"TXN002", "EUR", "€ 1.200,75"
"TXN003", "USD", "$ 1,750.50"
"TXN004", "EUR", "€ 950,00"
"TXN005", "USD", "$ 2,600.25"
];
```

Résultats

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

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Créez la mesure suivante :

* `Num(AmountValue)`

Tableau de résultats

| TransactionID | Currency | Amount | AmountValue | Num(AmountValue) |
| --- | --- | --- | --- | --- |
| TXN001 | USD | $1,500.00 | $ 1,500.00 | 1500 |
| TXN002 | EUR | € 1.200,75 | € 1.200,75 | 1200.75 |
| TXN003 | USD | $ 1,750.50 | $ 1,750.50 | 1750.5 |
| TXN004 | EUR | € 950,00 | € 950,00 | 950 |
| TXN005 | USD | $ 2,600.25 | $ 2,600.25 | 2600.25 |

Les résultats montrent comment la fonction `Money#` convertit des valeurs textuelles en valeurs numériques monétaires qui peuvent ensuite être évaluées. Par exemple, les valeurs du champ `Amount` sont textuelles et apparaissent alignées à gauche. Toutefois, une fois que ces valeurs sont traitées par la fonction `Money#` pour créer le nouveau champ `AmountValue`, le système les reconnaît désormais comme des valeurs numériques monétaires. La fonction `Num`, utilisée dans la colonne la plus à droite, peut maintenant évaluer les valeurs monétaires dans `AmountValue` et remplacer le format de devise par un nombre.