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

Num#() interpreta una cadena de texto como un valor numérico, es decir, convierte la cadena de entrada en un número utilizando el formato especificado en el segundo parámetro. Si se omite el segundo parámetro, utiliza los separadores de decimal y de miles definidos en el script de carga de datos. Los símbolos de separador decimal o de miles personalizados son parámetros opcionales.

Sintaxis:

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

Tipo de datos que devuelve: dual

La función Num#() devuelve un valor dual con la cadena y el valor numérico. La función toma la representación textual de la expresión introducida y genera un número. No cambia el formato del número; el resultado de salida tiene el mismo formato que la entrada.

Argumentos

| Argumento | Descripción |
| --- | --- |
| text | La cadena de texto que se ha de evaluar. |
| format | Cadena que especifica el formato de número utilizado en el primer parámetro. Si se omite el segundo parámetro, utiliza los separadores de decimal y de miles definidos en el script de carga de datos.<br><br>La función `Num#` admite muchas opciones de formato para diferentes estructuras numéricas, por ejemplo:<br><br>`#,##0`: muestra un número sin decimales.<br><br>`#,##0.00`: muestra un número con dos decimales.<br><br>`##0.00%`: muestra un número como porcentaje con dos decimales.<br><br>`​#,##0;(#,##0)`: da formato a los números negativos para que aparezcan entre paréntesis.<br><br>`$#,##0.00`: da formato los números como moneda con el símbolo $.<br><br>`​0.00E+0`: da formato a los números en notación científica. |
| dec\_sep | Cadena que especifica el separador numérico decimal. Si se omite, se utilizará el valor de la variable DecimalSep establecido en el script de carga de datos.<br><br>La función `Num#` 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`.<br><br>Para más información, consulte [DecimalSep](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm). |
| thou\_sep | Cadena que especifica el separador numérico de miles. Si se omite, se utilizará el valor de la variable ThousandSep establecido en el script de carga de datos.<br><br>La función `Num#` 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`.<br><br>Para más información, consulte [ThousandSep](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Ejemplo: Expresiones de gráficos

| Ejemplo | Resultados (valor de cadena que devuelve) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Devuelve la cadena de `35,648.31` y el valor numérico de `35648.31`. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Devuelve la cadena de `35 648.312` y el valor numérico de `35648.312`. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Devuelve la cadena de `35.648,3123` y el valor numérico de ` NULL  `(`-`). |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Devuelve la cadena de `35 648,31234` y el valor numérico de ` NULL  `(`-`). |
| `Num#('1,234.56', '#,##0.00')` | Devuelve la cadena de `1,234.56` y el valor numérico de `1230.45`. |
| `Num#('$1,230.45', '$#,##0.00')` | Devuelve la cadena de `$1,230.45` y el valor numérico de `1234.56`. |
| `Num#('20220315', 'YYYYMMDD')` | Devuelve la cadena de `20220315` y el valor numérico de `20220315`. |

## Ejemplo: fundamentos de Num\#

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/num_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:

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:

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* Los ajustes estándar de `ThousandSep` y `DecimalSep` para ilustrar este ejemplo.

* Una carga precedente que utiliza la función `Num#`. Cuando se ejecuta, crea un campo adicional llamado `FormattedSalesAmount`.

Script de carga

```
SET ThousandSep=',';
SET DecimalSep='.';
Example:
LOAD
ProductID,
ProductName,
SalesAmount,
Num#(SalesAmount, '#.##0,00',',','.') AS FormattedSalesAmount
INLINE [
ProductID, ProductName, SalesAmount
1, Product A, '1.234,56'
2, Product B, '2.456,78'
3, Product C, '345,67'
4, Product D, '987,12'
5, Product E, '1.200,45'
];
```

Resultados

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

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Cree la siguiente medida:

* `=Num(FormattedSalesAmount)`, para ver el valor numérico del campo según la configuración del sistema para el formato numérico.

Results table

| ProductID | ProductName | SalesAmount | FormattedSalesAmount | Num(FormattedSalesAmount) |
| --- | --- | --- | --- | --- |
| 1 | Product A | 1.234,56 | 1.234,56 | 1234.56 |
| 2 | Product B | 2.456,78 | 2.456,78 | 2456.78 |
| 3 | Product C | 345,67 | 345,67 | 345.67 |
| 4 | Product D | 987,12 | 987,12 | 987.12 |
| 5 | Product E | 1.200,45 | 1.200,45 | 1200.45 |

En este ejemplo puede observar cómo la función `Num#` convierte los datos de `SalesAmount` de su formato original de texto a un valor numérico.

## Ejemplo: escenario de Num#.

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

#### Script de carga

Vista general

Un conjunto de datos contiene datos de ventas de varios países en diferentes formatos de texto. Queremos normalizar los datos y mostrarlos en una tabla.

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:

  * `Country`

  * `Product`

  * `Amount`

* Una carga precedente que utiliza la función `Num#` para convertir los valores del campo `Amount`.

Script de carga

```
Example:
LOAD
Country,
Product,
IF(Country = 'Germany', Num#(Amount, '#.##0,00', ',', '.'), Num#(Amount, '#,##0.00')) AS Amount
INLINE [
Country, Product, Amount
Germany, Product A, '1.234,56'
USA, Product B, '2,345.78'
Germany, Product C, '987,12'
USA, Product D, '1,200.45'
Germany, Product E, '345,67'
];
```

Resultados

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

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Cree la siguiente medida:

* `Num(Amount)`, para ver el valor numérico del campo `Amount` tal y como está configurado en los ajustes del sistema para el formato numérico.

Results table

| Product | Country | Amount | Num(Amount) |
| --- | --- | --- | --- |
| Customer A | Germany | 1.234,56 | 1234.56 |
| Customer B | USA | 2,345.78 | 2345.78 |
| Customer C | Germany | 987,12 | 987.12 |
| Customer D | USA | 1,200.45 | 1200.45 |
| Customer E | Germany | 345,67 | 345.67 |

Al comparar la columna `Amount` con la columna `Num(Amount)`, verá que los datos presentados mediante la función`  Num# ` cambian los valores numéricos subyacentes pero mantienen el formato de cadena tal cual. Por ejemplo, todos los valores de `Germany` en la columna `Amount` utilizan una coma como separador decimal, pero el formato subyacente en `Num(Amount)` utiliza un punto para todos los valores.