# Money#Skript- und Diagrammfunktion

Money#() wandelt einen Textstring in einen Geldwert um und verwendet dafür, wenn kein Formatcode zur Verfügung steht, das vorgegebene Format des Ladeskripts oder des Betriebssystems. Angepasste Dezimal- und Tausendertrennzeichen sind optionale Parameter.

Syntax:

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

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| text | Der zu evaluierende Textstring. |
| format | Ein String beschreibt das erwartete Eingabeformat für die Umwandlung eines Strings in ein numerisches Intervall.<br><br>Ist kein String angegeben, wird der vom Datenladeskript vorgegebene Wert für `MoneyFormat` verwendet.<br><br>Die Funktion `Money#` unterstützt viele Formatoptionen für verschiedene Währungsstrukturen, zum Beispiel:<br><br>​`$#,##0.00`: Fügt ein Dollarzeichen und zwei Dezimalstellen hinzu.<br><br>`€ #,##0`: Fügt ein Eurozeichen und keine Dezimalstellen hinzu, sowie ein Leerzeichen nach dem Eurozeichen.<br><br>`​¥#,##0`: Fügt ein japanisches Yen-Zeichen ohne Dezimalstellen hinzu.<br><br>​`$#,##0;($#,##0)`: Formatiert negative Werte in Klammern.<br><br>​`₣ #.##0,00`:​Fügt ein Schweizer-Franken-Zeichen mit Punkten als Tausendertrennzeichen und einem Komma als Dezimaltrennzeichen hinzu (zum Beispiel`  ₣ 1.000,00 `).<br><br>​`R #,##0.00`: Südafrikanisches Rand-Zeichen mit zwei Dezimalstellen und Leerzeichen nach dem Rand-Zeichen.<br><br>​`$ #,##0.000`: Fügt dem Dollarformat drei Dezimalstellen hinzu. |
| dec\_sep | String zur Angabe des Dezimaltrennzeichens. Ist kein String angegeben, wird der vom Datenladeskript vorgegebene Wert `MoneyDecimalSep` verwendet.<br><br>Die Funktion `Money#` unterstützt viele Formate für das Dezimaltrennzeichen, zum Beispiel:<br><br>Komma „ `,` “: zum Beispiel `$1,000,00` für eintausend Dollar.<br><br>Zeitraum „ `.` “: zum Beispiel `€ 1,000.00`.<br><br>Bindestrich „ `-` “: Wenn er anstelle des traditionellen Punkts oder Kommas als Dezimaltrennzeichen verwendet wird, werden Werte wie `¥1,000-00` angezeigt. |
| thou\_sep | String zur Angabe des Tausendertrennzeichens. Ist kein String angegeben, wird der vom Datenladeskript vorgegebene Wert `MoneyThousandSep` verwendet.<br><br>Die Funktion `Money#` unterstützt viele Optionen für das Tausendertrennzeichen:<br><br>Punkt „ `.` “: Verwendet einen Punkt als Tausendertrennzeichen (in einigen europäischen Formaten üblich) und wird in Kombination mit einem Komma als Dezimaltrennzeichen als `$1.000,00` angezeigt.<br><br>Leerzeichen ​„ “: Verwendet ein Leerzeichen als Tausendertrennzeichen, was in einigen europäischen Ländern üblich ist. Wird als `€ 1 000.00` angezeigt.<br><br>Unterstrich ​„`_`“:​Verwendet einen Unterstrich als Tausendertrennzeichen, was manchmal in technischen oder spezifischen regionalen Formaten verwendet wird. Zeigt Werte wie `$1_000.00` an. |

Die Funktion `Money#` verhält sich im Allgemeinen genauso wie die Funktion `Num#`, benutzt aber die Standardwerte für Dezimal- und Tausendertrennzeichen aus den Skriptvariablen für Geldbeträge oder die Systemeinstellungen für Währung.

Beispiel: Diagrammformeln

| Beispiel | Ergebnisse |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Gibt `35 648,37 kr` zurück, wenn die Einstellung `MoneyFormat` `# ##0,00 kr` ist. Damit dies korrekt als Zahl ausgewertet wird, müssen Sie im Ladeskript folgende Einstellungen vornehmen:<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | Gibt `$35,648.37` zurück, wenn Folgendes festgelegt ist:<br><br><ul> <li> <p><code>MoneyFormat</code>ist <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Beispiel – Grundlegendes zu „Money#“

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

#### Ladeskript

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Ein Feld in der Datentabelle heißt `MoneyValue`.

* Ein vorangehender load-Befehl, der die Funktion `Money#` verwendet, um die Textwerte in den Daten in einen Wert umzuwandeln, den Qlik Sense als gültigen Wert erkennt.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `MoneyValue`

* `FormattedMoneyValue`

Erstellen Sie die folgenden Kennzahlen:

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )`, um den Wert als Währung anzuzeigen, formatiert mit den Argumenten, die in der Funktion `Money` festgelegt wurden.

* `=Num(FormattedMoneyValue)`, um den numerischen Wert zurückzugeben, nachdem er von der Funktion `Money#` verarbeitet wurde.

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 |

Die Ergebnistabelle zeigt, wie Werte mit den folgenden Funktionen und Formaten angezeigt werden können: `Money#`, `Money`, und `Num`. Die zweite Spalte zeigt die Dimension `FormattedMoneyValue`, die mit der Funktion `Money#` berechnet wurde, um den Wert in Währung mit dem Format `'# ##0,00 kr',',',' '` zu ändern. Die dritte Spalte verwendet die Funktion `Money`, um das Währungsformat von `FormattedMoneyValue` in `'kr #,##0', '.' , ','` zu ändern. Die vierte Spalte verwendet die Funktion `Num`, um den numerischen Wert der Dimension `FormattedMoneyValue` unter Verwendung des Formats in der Systemvariablen anzuzeigen.

## Beispiel – Szenario für „Money#“

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

#### Ladeskript

Übersicht

Ein Datensatz mit Kundenaufträgen enthält Felder, die unterschiedliche Währungen verwenden. Dieses Beispiel zeigt Ihnen, wie Sie die Umsatzwerte nach Währung trennen und summieren können.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `TransactionID`

  * `Currency`
  * `Amount`

* Die Systemvariablen `MoneyDecimalSep`, `MoneyFormat` und `MoneyThousandSep` wurden zu Demonstrationszwecken auf ein anderes Format als die in den Daten verwendeten Variablen eingestellt.

* Ein vorangehender load-Befehl, der die Felder `TransactionID`, `Currency` und `Amount` lädt und das folgende Feld erstellt:

  * `AmountValue`. Dieses Feld verwendet die Funktion `Money#`, um den empfangenen Text in einen Wert umzuwandeln, den das System versteht.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Erstellen Sie die folgende Kennzahl:

* `Num(AmountValue)`

Ergebnistabelle

| 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 |

Die Ergebnisse zeigen, wie die Funktion `Money#` Textwerte in monetäre Zahlenwerte umwandelt, die dann ausgewertet werden können. Die Werte im Feld `Amount` sind zum Beispiel Text und werden linksbündig angezeigt. Sobald diese jedoch von der Funktion `Money#` verarbeitet werden, um das neue Feld `AmountValue` zu erstellen, erkennt das System diese nun als monetäre numerische Werte. Die Funktion `Num`, die in der Spalte ganz rechts verwendet wird, kann jetzt die monetären Werte in `AmountValue` auswerten und das Format von Währung in eine Zahl ändern.