# Num#Skript- und Diagrammfunktion

Num#() interpretiert einen Textstring als Zahlenwert, konvertiert also den Eingabestring in eine Zahl mit dem Format, das im zweiten Parameter angegeben ist. Wenn der zweite Parameter ausgelassen wird, werden die Dezimal- und Tausendertrennzeichen verwendet, die im Datenladeskript festgelegt sind. Angepasste Dezimal- und Tausendertrennzeichen sind optionale Parameter.

Syntax:

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

Rückgabe Datentyp: dual

Die Funktion Num#() gibt einen dualen Wert mit dem String- und dem Zahlenwert zurück. Die Funktion nimmt die Textdarstellung der Eingabeformel und generiert eine Zahl. Das Format der Zahl wird nicht geändert. Die Ausgabe ist genau so formatiert wie die Eingabe.

Argumente

| Argument | Beschreibung |
| --- | --- |
| text | Der zu evaluierende Textstring. |
| format | String zur Angabe des Zahlenformats im ersten Parameter. Ist kein String angegeben, werden die Dezimal- und Tausendertrennzeichen verwendet, die im Datenladeskript festgelegt sind.<br><br>Die Funktion `Num#` unterstützt viele Formatoptionen für verschiedene numerische Strukturen, zum Beispiel:<br><br>`#,##0`: ​Zeigt eine Zahl ohne Dezimalstellen an.<br><br>`#,##0.00`: ​Zeigt eine Zahl mit zwei Dezimalstellen an.<br><br>`##0.00%`: Zeigt eine Zahl als Prozentsatz mit zwei Dezimalstellen an.<br><br>`​#,##0;(#,##0)`: Formatiert negative Werte in Klammern.<br><br>`$#,##0.00`: Formatiert Zahlen als Währung mit einem $-Symbol.<br><br>`​0.00E+0`: Zeigt Zahlen in wissenschaftlicher Schreibweise an. |
| dec\_sep | String zur Angabe des Dezimaltrennzeichens. Ist kein String angegeben, wird der vom Datenladeskript vorgegebene Wert der Variablen DecimalSep verwendet.<br><br>Die Funktion `Num#` unterstützt viele Formate für das Dezimaltrennzeichen, zum Beispiel:<br><br>Komma „ `,` “: zum Beispiel `$1,000,00` für eintausend Dollar.<br><br>Zeitraum „ `.` “: zum Beispiel `€ 1,000.00`.<br><br>Bindestrich „ `-` “: Wenn er anstelle des traditionellen Punkts oder Kommas als Dezimaltrennzeichen verwendet wird, werden Werte wie `¥1,000-00` angezeigt.<br><br>​Weitere Informationen finden Sie unter [DecimalSep](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm). |
| thou\_sep | String zur Angabe des Tausendertrennzeichens. Ist kein String angegeben, wird der vom Datenladeskript vorgegebene Wert der Variablen ThousandSep verwendet.<br><br>Die Funktion `Num#` unterstützt viele Optionen für das Tausendertrennzeichen:<br><br>Punkt „ `.` “: Verwendet einen Punkt als Tausendertrennzeichen (in einigen europäischen Formaten üblich) und wird in Kombination mit einem Komma als Dezimaltrennzeichen als `$1.000,00` angezeigt.<br><br>Leerzeichen ​„ “: Verwendet ein Leerzeichen als Tausendertrennzeichen, was in einigen europäischen Ländern üblich ist. Wird als `€ 1 000.00` angezeigt.<br><br>Unterstrich ​„`_`“:​Verwendet einen Unterstrich als Tausendertrennzeichen, was manchmal in technischen oder spezifischen regionalen Formaten verwendet wird. Zeigt Werte wie `$1_000.00` an.<br><br>​Weitere Informationen finden Sie unter [ThousandSep](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Beispiel: Diagrammformeln

| Beispiel | Ergebnisse (zurückgegebener String-Wert) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Gibt den String von `35,648.31` und den numerischen Wert von `35648.31` zurück. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Gibt den String von `35 648.312` und den numerischen Wert von `35648.312` zurück. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Gibt den String von `35.648,3123` und den numerischen Wert von ` NULL  ` (`-`) zurück. |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Gibt den String von `35 648,31234` und den numerischen Wert von ` NULL  ` (`-`) zurück. |
| `Num#('1,234.56', '#,##0.00')` | Gibt den String von `1,234.56` und den numerischen Wert von `1230.45` zurück. |
| `Num#('$1,230.45', '$#,##0.00')` | Gibt den String von `$1,230.45` und den numerischen Wert von `1234.56` zurück. |
| `Num#('20220315', 'YYYYMMDD')` | Gibt den String von `20220315` und den numerischen Wert von `20220315` zurück. |

## Beispiel – Grundlegendes zu „Num#“

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

#### Ladeskript

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* Die Standardeinstellungen für `ThousandSep` und `DecimalSep` zur Veranschaulichung dieses Beispiels.

* Ein vorangehender Load-Befehl, der die Funktion `Num#` verwendet. Wenn er ausgeführt wird, erstellt er ein zusätzliches Feld namens `FormattedSalesAmount`.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Erstellen Sie die folgende Kennzahl:

* `=Num(FormattedSalesAmount)`, um den numerischen Wert des Feldes gemäß den Systemeinstellungen für das Zahlenformat anzuzeigen.

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 |

In diesem Beispiel sehen Sie, wie die Funktion `Num#` die Daten von `SalesAmount` aus ihrem ursprünglichen Textformat in einen numerischen Wert konvertiert.

## Beispiel – Szenario für „Num#“

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

#### Ladeskript

Übersicht

Ein Datensatz enthält Umsatzdaten aus mehreren Ländern in verschiedenen Textformaten. Wir möchten die Daten standardisieren und in einer Tabelle anzeigen.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `Country`

  * `Product`

  * `Amount`

* Ein vorangehender Load-Befehl, der die Funktion `Num#` verwendet, um die Werte im Feld `Amount` zu konvertieren.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Erstellen Sie die folgende Kennzahl:

* `Num(Amount)`, um den numerischen Wert des Feldes `Amount` gemäß den Systemeinstellungen für das Zahlenformat anzuzeigen.

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 |

Wenn Sie die Spalte `Amount` mit der Spalte `Num(Amount)` vergleichen, sehen Sie, dass die Daten, die mit der Funktion `  Num# ` dargestellt werden, die zugrunde liegenden numerischen Werte ändern, aber das String-Format unverändert lassen. Zum Beispiel verwenden alle Werte für `Germany` in der Spalte `Amount` ein Komma als Dezimaltrennzeichen, aber das zugrunde liegende Format in `Num(Amount)` verwendet einen Punkt für alle Werte.