# Money#Función de script y de gráfico

Money#() convierte una cadena de texto en un valor de moneda, en el formato definido en el script de carga o el sistema operativo, a menos que se suministre una cadena de formato. Los símbolos de separador decimal o de miles personalizados son parámetros opcionales.

Sintaxis:

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

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| text | La cadena de texto que se ha de evaluar. |
| format | Cadena que describe el formato de entrada esperado para utilizarlo en la conversión de la cadena a un intervalo numérico.<br><br>Si se omite, se utiliza el valor establecido en el script de carga de datos para `MoneyFormat`.<br><br>La función `Money#` admite muchas opciones de formato para diferentes estructuras monetarias, por ejemplo:<br><br>`$#,##0.00`: añade un signo de dólar y dos decimales.<br><br>`€ #,##0`: añade un signo de euro y ningún decimal, con un espacio después del signo de euro.<br><br>`​¥#,##0`: añade un signo de yen japonés sin decimales.<br><br>`$#,##0;($#,##0)`: formatea los valores negativos entre paréntesis.<br><br>`₣ #.##0,00`: añade un signo de franco suizo con puntos como separadores de miles y una coma para los decimales (por ejemplo,`  ₣ 1.000,00 `).<br><br>`R #,##0.00`: signo del rand sudafricano con dos decimales y espacio después del símbolo rand.<br><br>`$ #,##0.000`: añade tres decimales al formato del dólar. |
| dec\_sep | Cadena que especifica el separador numérico decimal. Si se omite, se utiliza el valor `MoneyDecimalSep` establecido en el script de carga de datos.<br><br>La función `Money#` admite muchos formatos de separador decimal de números, por ejemplo:<br><br>Signo de coma "`,`": por ejemplo, `$1,000,00` para mil dólares.<br><br>Signo de punto "`.`"': por ejemplo, `€ 1,000.00`.<br><br>Signo de guión "`-`": cuando se utiliza en lugar del punto o la coma tradicionales como separador decimal, muestra valores como `¥1,000-00`. |
| thou\_sep | Cadena que especifica el separador numérico de miles. Si se omite, se utiliza el valor `MoneyThousandSep` establecido en el script de carga de datos.<br><br>La función `Money#` admite muchas opciones para el separador de miles:<br><br>Signo de punto "`.`": utiliza un punto como separador de miles (común en algunos formatos europeos), mostrándose como `$1.000,00` si se combina con un separador decimal de coma.<br><br>Un espacio ​" ": utiliza un espacio como separador de miles, algo que es habitual en algunos países europeos. Se mostraría así: `€ 1 000.00`.<br><br>Signo de guión bajo "`_`": utiliza un guión bajo como separador de miles, que a veces se utiliza en formatos técnicos o regionales específicos. Muestra valores como `$1_000.00`. |

La función `Money#` se comporta en general como la función `Num#` pero toma sus valores por defecto para los separadores decimal y de miles de las variables de script para el formato del dinero o la configuración del sistema para la moneda.

Ejemplo: Expresiones de gráficos

| Ejemplo | Resultados |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | Devuelve `35 648,37 kr` cuando la configuración de `MoneyFormat` es `# ##0,00 kr`. Es necesario configurar lo siguiente en su script de carga para que esto se evalúe correctamente como un 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', ' $#', '.', ',' )` | Devuelve `$35,648.37` cuando se establece lo siguiente:<br><br><ul> <li> <p><code>MoneyFormat</code> es <code>$#</code></p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## Ejemplo: fundamentos de Money\#

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

#### Script de carga

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Un campo de la tabla de datos llamado `MoneyValue`.

* Una carga precedente que utiliza la función `Money#` para convertir los valores de texto de los datos en un valor que Qlik Sense reconocerá como válido.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `MoneyValue`

* `FormattedMoneyValue`

Cree las siguientes medidas:

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )`, para ver el valor como moneda, formateado utilizando los argumentos establecidos en la función `Money`.

* `=Num(FormattedMoneyValue)` para devolver el valor numérico después de que haya sido procesado por la función `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 |

La tabla de resultados muestra cómo se pueden mostrar los valores utilizando las funciones y el formato siguientes: `Money#`, `Money`, y `Num`. La segunda columna muestra la dimensión `FormattedMoneyValue`, que se calculó utilizando la función `Money#` para cambiar el valor a dinero con el formato `'# ##0,00 kr',',',' '`. La tercera columna utiliza la función `Money` para cambiar el formato de moneda de `FormattedMoneyValue` a `'kr #,##0', '.' , ','`. La cuarta columna utiliza la función `Num` para mostrar el valor numérico de la dimensión `FormattedMoneyValue` utilizando el formato de la variable del sistema.

## Ejemplo: escenario de Money\#

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

#### Script de carga

Vista general

Un conjunto de datos de pedidos de venta contiene campos que utilizan distintos tipos de moneda. Este ejemplo le muestra cómo separar y sumar los valores de las ventas en función de la moneda.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `TransactionID`

  * `Currency`
  * `Amount`

* Las variables del sistema `MoneyDecimalSep`, `MoneyFormat` y `MoneyThousandSep` configuradas para utilizar un formato diferente al utilizado en los datos con fines de demostración.

* Un load precedente que carga los campos `TransactionID`, `Currency` y `Amount`, y crea el campo siguiente:

  * `AmountValue`, este campo utiliza la función `Money#` para convertir el texto que recibe en un valor que el sistema entienda.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

Cree la siguiente medida:

* `Num(AmountValue)`

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

Los resultados muestran cómo la función `Money#` convierte los valores de texto en valores numéricos monetarios que luego pueden evaluarse. Por ejemplo, los valores del campo `Amount` son texto y aparecen alineados a la izquierda. Sin embargo, una vez procesados por la función `Money#` para crear el nuevo campo, `AmountValue`, el sistema los reconoce ahora como valores numéricos monetarios. La función `Num`, utilizada en la columna de la derecha, puede ahora evaluar los valores monetarios en `AmountValue` y cambiar el formato de dinero a un número.