# Money#Função de script e de gráfico

Money#() converte uma string de texto em um valor monetário, no formato definido no script de carregamento de dados ou no sistema operacional, a menos que uma string de formato seja fornecida. Símbolos de separadores decimal e de milhar personalizados são parâmetros opcionais.

Sintaxe:

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

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| text | A string de texto a ser avaliada. |
| format | A string que descreve o formato de entrada a ser usado para converter a sequência de caracteres para um intervalo numérico.<br><br>Se for omitido, o valor definido no script de carga de dados para `MoneyFormat` será usado.<br><br>A função `Money#` aceita muitas opções de formato para diferentes estruturas de dinheiro, por exemplo:<br><br>​`$#,##0.00`: adiciona um cifrão e duas casas decimais.<br><br>`€ #,##0`: adiciona um sinal de euro e nenhuma casa decimal, com um espaço após o sinal de euro.<br><br>`​¥#,##0`: adiciona um sinal de iene japonês sem casas decimais.<br><br>​`$#,##0;($#,##0)`: formata valores negativos entre parênteses.<br><br>​`₣ #.##0,00`:​ adiciona um sinal de franco suíço com pontos como separadores de milhar e uma vírgula para decimais (por exemplo,`  ₣ 1.000,00 `).<br><br>​`R #,##0.00`: símbolo do rand sul-africano com duas casas decimais e espaço após o símbolo do rand.<br><br>​`$ #,##0.000`: adiciona três casas decimais ao formato do dólar. |
| dec\_sep | String especificando o separador de número decimal. Se omitida, o valor `MoneyDecimalSep` definido no script de carga de dados será usado.<br><br>A função `Money#` é compatível com muitos formatos de separadores decimais de números, por exemplo:<br><br>Vírgula ​' `,` ': por exemplo, `$1,000,00` para mil dólares.<br><br>Ponto ' `.` ':​ por exemplo, `€ 1,000.00`.<br><br>Hífen ' `-` ': quando usado no lugar do ponto tradicional ou da vírgula como separador decimal, mostra valores como `¥1,000-00`. |
| thou\_sep | String especificando o separador de número milhar. Se omitida, o valor `MoneyThousandSep` definido no script de carga de dados será usado.<br><br>A função `Money#` oferece suporte a várias opções para o separador de milhares de números:<br><br>Ponto ' `.` ': usa um ponto para o separador de milhares (comum em alguns formatos europeus), exibido como `$1.000,00` se combinado com um separador decimal com vírgula.<br><br>Espaço ​' ': usa um espaço para o separador de milhares, o que é comum em alguns países europeus. É exibido como `€ 1 000.00`.<br><br>Sublinhado ​'`_`':​ usa um sublinhado para o separador de milhares, que às vezes é usado em formatos técnicos ou regionais específicos. Exibe valores como `$1_000.00`. |

A função `Money#` geralmente comporta-se como a função `Num#`, mas adota como valores padrão para os separadores decimais e de milhar das variáveis do script para formato de moeda ou a configuração do sistema para unidade monetária.

Exemplo: expressões de gráfico

| Exemplo | Resultados |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Retorna `35 648,37 kr` quando a configuração de `MoneyFormat` é `# ##0,00 kr`. O seguinte precisa ser definido no seu script de carregamento para que isso seja avaliado corretamente como um número:<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | Retorna `$35,648.37` quando o seguinte está definido:<br><br><ul> <li> <p><code>MoneyFormat</code>é <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Exemplo - Fundamentos de Money\#

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

#### Script de carregamento

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Um campo na tabela de dados chamado `MoneyValue`.

* Um carregamento anterior que usa a função `Money#` para converter os valores de texto nos dados em um valor que o Qlik Sense reconhecerá como um valor válido.

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `MoneyValue`

* `FormattedMoneyValue`

Crie as seguintes medidas:

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )` para visualizar o valor como dinheiro, formatado usando os argumentos definidos na função `Money`.

* `=Num(FormattedMoneyValue)` para retornar o valor numérico após ter sido processado pela função `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 |

A tabela de resultados mostra como os valores podem ser exibidos usando as funções e o formato a seguir: `Money#`, `Money` e `Num`. A segunda coluna mostra a dimensão `FormattedMoneyValue`, que foi calculada usando a função `Money#` para alterar o valor para dinheiro com o formato `'# ##0,00 kr',',',' '`. A terceira coluna usa a função `Money` para alterar o formato da moeda de `FormattedMoneyValue` para `'kr #,##0', '.' , ','`. A quarta coluna usa a função `Num` para mostrar o valor numérico da dimensão `FormattedMoneyValue` usando o formato na variável do sistema.

## Exemplo - Cenário de Money\#

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

#### Script de carregamento

Visão geral

Um conjunto de dados de pedidos de vendas contém campos que usam moedas diferentes. Este exemplo mostra como separar e somar os valores de vendas com base na moeda.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `TransactionID`

  * `Currency`
  * `Amount`

* As variáveis de sistema `MoneyDecimalSep`, `MoneyFormat` e `MoneyThousandSep` foram configuradas para usar um formato diferente do usado nos dados para fins de demonstração.

* Um carregamento anterior que carrega os campos `TransactionID`, `Currency` e `Amount` e cria o campo a seguir:

  * `AmountValue`, este campo usa a função `Money#` para converter o texto que recebe em um valor que o sistema entende.

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Crie a seguinte medida:

* `Num(AmountValue)`

Tabela de resultados

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

Os resultados mostram como a função `Money#` converte valores de texto em valores numéricos monetários que podem ser avaliados. Por exemplo, os valores no campo `Amount` são texto e aparecem alinhados à esquerda. No entanto, depois que eles são processados pela função `Money#` para criar o novo campo, `AmountValue`, o sistema agora os reconhece como valores numéricos monetários. A função `Num`, usada na coluna mais à direita, agora pode avaliar os valores monetários em `AmountValue` e alterar o formato de dinheiro para número.