# Num# – Skript- och diagramfunktion

Num#() tolkar en textsträng som ett numeriskt värde, vilket innebär att indatasträngen konverteras till ett tal med det format som specificerats i den andra parametern. Om den andra parametern utelämnas använder funktionen de decimal- och tusentalsavgränsare som anges i dataladdningsskriptet. Egna symboler för decimaler och tusentalsseparatorer är valbara parametrar.

Syntax:

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

Returnerad datatyp: dual

Funktionen Num#() returnerar ett dualt värde med både strängvärdet och det numeriska värdet. Funktionen tar indatauttryckets textrepresentation och genererar ett tal. Talets format ändras inte: utdata formateras på samma sätt som indata.

Argument

| Argument | Beskrivning |
| --- | --- |
| text | Textsträngen som ska utvärderas. |
| format | Sträng som specificerar talformatet som används i den första parametern. Om den utelämnas används de decimal- och tusentalsavgränsare som anges i dataladdningsskriptet.<br><br>Funktionen `Num#` stöder många formatalternativ för olika datumstrukturer, t.ex:<br><br>`#,##0`: ​Visar ett tal utan decimaler.<br><br>`#,##0.00`: ​Visar ett tal med två decimaler.<br><br>`##0.00%`: Visar ett tal som ett procenttal med två decimaler.<br><br>`​#,##0;(#,##0)`: Formaterar negativa tal till att visas inom parentes.<br><br>`$#,##0.00`: Formaterar tal som valuta med en $-symbol.<br><br>`​0.00E+0`: Visar tal i vetenskaplig notation. |
| dec\_sep | Sträng som specificerar decimalavgränsare. Om det utelämnas används värdet för variabeln DecimalSep som angetts i dataladdningsskriptet.<br><br>Funktionen `Num#` 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`.<br><br>​Mer information finns i [DecimalSep](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm). |
| thou\_sep | Sträng som specificerar tusendelsavgränsare. Om det utelämnas används värdet för variabeln ThousandSep som angetts i dataladdningsskriptet.<br><br>Funktionen `Num#` 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`.<br><br>​Mer information finns i [ThousandSep](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Exempel: diagramuttryck

| Exempel | Resultat (returnerat strängvärde) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Returnerar strängen `35,648.31` och det numeriska värdet `35648.31`. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Returnerar strängen `35 648.312` och det numeriska värdet `35648.312`. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Returnerar strängen `35.648,3123` och det numeriska värdet ` NULL  `(`-`). |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Returnerar strängen `35 648,31234` och det numeriska värdet ` NULL  `(`-`). |
| `Num#('1,234.56', '#,##0.00')` | Returnerar strängen `1,234.56` och det numeriska värdet `1230.45`. |
| `Num#('$1,230.45', '$#,##0.00')` | Returnerar strängen `$1,230.45` och det numeriska värdet `1234.56`. |
| `Num#('20220315', 'YYYYMMDD')` | Returnerar strängen `20220315` och det numeriska värdet `20220315`. |

## Exempel – grunderna i Num\#

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

#### Laddningsskript

Översikt

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

Laddningsskriptet innehåller:

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

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* Standardinställningarna för `ThousandSep` och `DecimalSep` för att illustrera detta exempel.

* En föregående laddning som använder funktionen `Num#`. När den körs skapas ett extra fält som heter `FormattedSalesAmount`.

Laddningsskript

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

Resultat

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

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Skapa följande mått:

* `=Num(FormattedSalesAmount)`, för att visa fältets numeriska värde enligt systeminställningarna för talformatet.

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 |

I det här exemplet kan du se hur funktionen `Num#` omvandlar `SalesAmount`-data från sitt ursprungliga textformat till ett numeriskt värde.

## Exempel – Num#-scenario

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

#### Laddningsskript

Översikt

En datauppsättning innehåller försäljningsdata från flera länder i olika textformat. Vi vill standardisera data och visa dem i en tabell.

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

  * `Country`

  * `Product`

  * `Amount`

* En tidigare laddning som använder funktionen `Num#` för att konvertera värdena i fältet `Amount`.

Laddningsskript

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

Resultat

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

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Skapa följande mått:

* `Num(Amount)` för att visa `Amount`-fältets numeriska värde enligt systeminställningarna för talformatet.

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 |

När man jämför kolumnen `Amount` med kolumnen `Num(Amount)` ser man att de data som presenteras med funktionen `  Num# ` ändrar de underliggande numeriska värdena men behåller strängformatet som det är. Till exempel använder alla värden för `Germany` i kolumnen `Amount` ett kommatecken som decimalavgränsare, men det underliggande formatet i `Num(Amount)` använder en punkt för alla värden.