# Money#funkcja skryptu i funkcja wykresu

Funkcja Money#() konwertuje ciąg znaków na wartość pieniężną w formacie ustawionym w skrypcie ładowania lub systemie operacyjnym, chyba że podano format ciągu znaków. Parametrami opcjonalnymi są niestandardowe symbole separatora dziesiętnego i separatora tysięcy.

Składnia:

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

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| text | Tekstowy ciąg znaków do oceny. |
| format | Ciąg znaków opisujący spodziewany format danych wejściowych, który ma być użyty podczas konwertowania tego ciągu na interwał liczbowy.<br><br>W przypadku pominięcia dla `MoneyFormat` zostanie użyta wartość ustawiona w skrypcie ładowania danych.<br><br>Funkcja `Money#` obsługuje wiele opcji formatu dla różnych struktur pieniężnych, na przykład:<br><br>​`$#,##0.00`: dodaje znak dolara i dwa miejsca po przecinku.<br><br>`€ #,##0`: dodaje znak euro bez miejsc po przecinku, ze spacją po znaku euro.<br><br>`​¥#,##0`: dodaje japoński znak jena bez miejsc dziesiętnych.<br><br>`$#,##0;($#,##0)`: formatuje wartości ujemne w nawiasach.<br><br>​`₣ #.##0,00`:​dodaje znak franka szwajcarskiego z kropkami jako separatorami tysięcy i przecinkiem dla separatorów dziesiętnych (na przykład `  ₣ 1.000,00 `).<br><br>​`R #,##0.00`: znak randa południowoafrykańskiego z dwoma miejscami po przecinku i Przestrzenie po symbolu randa.<br><br>`$ #,##0.000`: Dodaje trzy miejsca po przecinku do formatu dolara. |
| dec\_sep | Ciąg znaków określający separator dziesiętny. W przypadku pominięcia zostanie użyta wartość `MoneyDecimalSep` ustawiona w skrypcie ładowania danych.<br><br>Funkcja `Money#` obsługuje wiele formatów separatorów dziesiętnych, np:<br><br>Przecinek ​„`,`”: na przykład `$1,000,00` w przypadku tysiąca dolarów.<br><br>Kropka „`.`”:​ na przykład `€ 1,000.00`.<br><br>Łącznik „`-`”: używany zamiast tradycyjnej kropki lub przecinka jako separatora dziesiętnego, wyświetla wartości w taki sposób: `¥1,000-00`. |
| thou\_sep | Ciąg znaków określający separator tysięcy. W przypadku pominięcia zostanie użyta wartość `MoneyThousandSep` ustawiona w skrypcie ładowania danych.<br><br>Funkcja `Money#` obsługuje wiele opcji separatora tysięcy:<br><br>Kropka „`.`”: używa kropki jako separatora tysięcy (typowe w niektórych formatach europejskich), wyświetlając w formie `$1.000,00` w połączeniu z przecinkiem jako separatorem dziesiętnym.<br><br>Spacja Space ​„ ”: używa spacji jako separatora tysięcy, co jest typowe w niektórych krajach europejskich. Wygląda tak: `€ 1 000.00`.<br><br>Znak podkreślenia „`_`”: używa znaku podkreślenia jako separatora tysięcy, który jest czasami używany w formatach technicznych lub specyficznych formatach regionalnych. Wyświetla wartości w takiej formie: `$1_000.00`. |

Funkcja `Money#` zazwyczaj działa analogicznie do funkcji `Num#`, ale pobiera domyślne wartości separatora dziesiętnego i separatora tysięcy ze zmiennych skryptu określających format lub ustawień systemowych waluty.

Przykład: wyrażenia wykresu

| Przykład | Wyniki |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Zwraca `35 648,37 kr`, gdy ustawienie `MoneyFormat` to `# ##0,00 kr`. Skrypt ładowania musi zawierać następujące ustawienia, aby można było poprawnie ocenić to jako liczbę:<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | Zwraca `$35,648.37` po ustawieniu:<br><br><ul> <li> <p><code>MoneyFormat</code> wynosi <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Przykład — podstawy Money\#

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

#### Skrypt ładowania

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Jedno pole w tabeli danych o nazwie `MoneyValue`.

* Poprzedzające ładowanie, które wykorzystuje funkcję `Money#` do konwersji wartości tekstowych w danych na wartość, którą Qlik Sense rozpozna jako prawidłową wartość.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `MoneyValue`

* `FormattedMoneyValue`

Utwórz następujące miary:

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )` w celu wyświetlania wartości jako pieniędzy, sformatowanej przy użyciu argumentów ustawionych w funkcji `Money`.

* `=Num(FormattedMoneyValue)` w celu zwrócenia wartości liczbowej po jej przetworzeniu przez funkcję `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 |

Tabela wyników pokazuje, jak można wyświetlać wartości przy użyciu następujących funkcji i formatu: `Money#`, `Money` i `Num`. Druga kolumna przedstawia wymiar `FormattedMoneyValue`, który został obliczony przy użyciu funkcji `Money#` w celu zmiany wartości na pieniądze w formacie `'# ##0,00 kr',',',' '`. Trzecia kolumna wykorzystuje funkcję `Money` do zmiany formatu waluty z `FormattedMoneyValue` na `'kr #,##0', '.' , ','`. Czwarta kolumna wykorzystuje funkcję `Num` do wyświetlenia wartości liczbowej wymiaru `FormattedMoneyValue` przy użyciu formatu w zmiennej systemowej.

## Przykład — zastosowanie Money\#

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

#### Skrypt ładowania

Przegląd

Zestaw danych zamówień sprzedaży zawiera pola używające różnych walut. Ten przykład pokazuje, jak oddzielić i zsumować wartości sprzedaży na podstawie waluty.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `TransactionID`

  * `Currency`
  * `Amount`

* Zmienne systemowe `MoneyDecimalSep`, `MoneyFormat` i `MoneyThousandSep` ustawione tak, aby używały innego formatu niż te używane w danych do celów demonstracyjnych.

* Poprzedzające ładowanie, które ładuje pola `TransactionID`, `Currency` oraz `Amount` i tworzy następujące pole:

  * `AmountValue`, pole to wykorzystuje funkcję `Money#` do konwersji otrzymanego tekstu na wartość zrozumiałą dla systemu.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Utwórz następującą miarę:

* `Num(AmountValue)`

Tabela wynikowa

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

Wyniki pokazują, jak funkcja `Money#` konwertuje wartości tekstowe na pieniężne wartości liczbowe, które można następnie ocenić. Na przykład wartości w polu `Amount` są tekstem i są wyrównane do lewej. Jednak po przetworzeniu ich przez funkcję `Money#` w celu utworzenia nowego pola, `AmountValue`, system rozpoznaje je teraz jako liczbowe wartości pieniężne. Funkcja `Num`, używana w prawej kolumnie, może teraz oceniać wartości pieniężne w `AmountValue` i zmieniać format z pieniędzy na liczbę.