# Money#Skript- och diagramfunktion

Money#() konverterar en textsträng till ett monetärt värde i det format som har ställts in i laddningsskriptet eller operativsystemet, om inte en formatsträng tillhandahålls. Egna symboler för decimaler och tusentalsseparatorer är valbara parametrar.

Syntax:

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

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| text | Textsträngen som ska utvärderas. |
| format | En sträng som beskriver det förväntade indataformat som ska användas när man omvandlar strängen till ett numeriskt intervall.<br><br>Om det utelämnas används det värde som angetts i dataladdningsskriptet för `MoneyFormat`.<br><br>Funktionen `Money#` har stöd för många formatalternativ för olika money-strukturer, t.ex:<br><br>​`$#,##0.00`: Lägger till ett dollartecken och två decimaler.<br><br>`€ #,##0`: Lägger till ett eurotecken, inga decimaler och ett blanksteg efter eurotecknet.<br><br>`​¥#,##0`: Lägger till ett tecken för japanska yen utan decimaler.<br><br>​`$#,##0;($#,##0)`: Formaterar negativa värden inom parentes.<br><br>​`₣ #.##0,00`:​ Lägger till ett tecken för schweizerfranc med punkter som tusentalsavgränsare och ett kommatecken för decimalavgränsare (till exempel `  ₣ 1.000,00 `).<br><br>​`R #,##0.00`: Sydafrikanskt randtecken med två decimaler och blanksteg efter randtecknet.<br><br>​`$ #,##0.000`: Lägger till tre decimaler i dollarformatet. |
| dec\_sep | Sträng som specificerar decimalavgränsare. Om det utelämnas används det `MoneyDecimalSep`-värde som angetts i dataladdningsskriptet.<br><br>Funktionen `Money#` stöder många format för decimalavgränsare, t.ex:<br><br>Komma ​' `,` ': Till exempel, `$1,000,00` för ettusen dollar.<br><br>Punkt ' `.` ': ​ Till exempel `€ 1,000.00`.<br><br>Bindestreck ' `-` ': När det används i stället för den traditionella punkten eller kommatecknet som decimalavgränsare visar det värden som `¥1,000-00`. |
| thou\_sep | Sträng som specificerar tusendelsavgränsare. Om det utelämnas används det `MoneyThousandSep`-värde som angetts i dataladdningsskriptet.<br><br>Funktionen `Money#` stöder många alternativ för tusentalsavgränsaren:<br><br>Punkt ​' `.` ': Använder en punkt som tusentalsavgränsare (vanligt i vissa europeiska format), visas som `$1.000,00` om den kombineras med en decimalavgränsare med kommatecken.<br><br>Mellanslag ​' ': Använder ett mellanslag som tusentalsavgränsare, vilket är vanligt i vissa europeiska länder. Visas som `€ 1 000.00`.<br><br>Understreck ​'`_`':​Använder ett understreck för tusentalsavgränsaren, som ibland används i tekniska eller specifikt regionala format. Visar värden som `$1_000.00`. |

Funktionen `Money#` fungerar vanligtvis som funktionen `Num#`, men hämtar standardvärdena för decimal- och tusenavgränsare från skript-variablerna för valutaformat eller från systemets inställningar för valuta.

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Returnerar `35 648,37 kr` när inställningen för `MoneyFormat` är `# ##0,00 kr`. Följande måste ställas in i ditt laddningsskript för att detta ska utvärderas korrekt som ett tal:<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | Returnerar `$35,648.37` med följande inställning:<br><br><ul> <li> <p><code>MoneyFormat</code>är <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Exempel – grunderna i Money\#

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

#### Laddningsskript

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Ett fält i datatabellen heter `MoneyValue`.

* En föregående laddning som använder funktionen `Money#` för att konvertera textvärdena i data till ett värde som Qlik Sense kommer att känna igen som ett giltigt värde.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `MoneyValue`

* `FormattedMoneyValue`

Skapa följande mått:

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )`, för att se värdet som pengar, formaterat med de argument som anges i funktionen `Money`.

* `=Num(FormattedMoneyValue)` för att returnera det numeriska värdet efter att det har bearbetats av funktionen `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 |

Resultattabellen visar hur värden kan visas med hjälp av följande funktioner och format: `Money#`, `Money` och `Num`. I den andra kolumnen visas dimensionen `FormattedMoneyValue`, som beräknades med hjälp av funktionen `Money#` för att ändra värdet till pengar med formatet `'# ##0,00 kr',',',' '`. I den tredje kolumnen används funktionen `Money` för att ändra valutaformatet från `FormattedMoneyValue` till `'kr #,##0', '.' , ','`. Den fjärde kolumnen använder funktionen `Num` för att visa det numeriska värdet för `FormattedMoneyValue`-dimensionen med hjälp av formatet i systemvariabeln.

## Exempel – Money#-scenario

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

#### Laddningsskript

Översikt

En datauppsättning med försäljningsorder innehåller fält som använder olika valutor. I det här exemplet visas hur du separerar och summerar försäljningsvärdena baserat på valuta.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `TransactionID`

  * `Currency`
  * `Amount`

* Systemvariablerna `MoneyDecimalSep`, `MoneyFormat` och `MoneyThousandSep` är inställda på att använda ett annat format än de som används i datan i demonstrationssyfte.

* En föregående laddning som laddar fälten `TransactionID`, `Currency` och `Amount`, och skapar följande fält:

  * `AmountValue`, detta fält använder funktionen `Money#` för att konvertera den text som det tar emot till ett värde som systemet förstår.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Skapa följande mått:

* `Num(AmountValue)`

Resultattabell

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

Resultatet visar hur funktionen `Money#` omvandlar textvärden till monetära numeriska värden som sedan kan utvärderas. Värdena i fältet `Amount` är t.ex. text och visas med vänsterjustering. Men när dessa har bearbetats av funktionen `Money#` för att skapa det nya fältet `AmountValue` känner systemet nu igen dem som monetära numeriska värden. Funktionen `Num`, som används i kolumnen längst till höger, kan nu utvärdera de monetära värdena i `AmountValue` och ändra formatet från pengar till ett tal.