# Num#指令碼與圖表函數

Num#() 將文字字串解譯為數值，亦即使用第二參數指定的格式將輸入字串轉換為數字。若省略第二參數，這會使用資料載入指令碼中設定的小數點和千位分隔符號。自訂小數與千位分隔符號是選用參數。

語法：

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

傳回的資料類型： 雙值

Num#() 函數會傳回含有字串和數值的雙值。該函數採用輸入運算式的文字表示，並產生數字。這不會變更數字格式；輸出的格式化方式與輸入相同。

引數

| 引數 | 描述 |
| --- | --- |
| text | 要評估的文字字串。 |
| format | 指示第一個參數使用的數字格式的字串。如果省略，會使用資料載入指令碼中設定的小數點和千位分隔符號。<br><br>`Num#` 函數支援多種不同數字結構的格式選項，例如：<br><br>`#,##0`：顯示沒有小數位數的數字。<br><br>`#,##0.00`：顯示有兩位小數的數字。<br><br>`##0.00%`：以百分比顯示有兩位小數的數字。<br><br>`​#,##0;(#,##0)`：格式化負值以顯示在括號中。<br><br>`$#,##0.00`：使用 $ 符號將數字格式化為貨幣。<br><br>`​0.00E+0`：以科學標記法顯示數字。 |
| dec\_sep | 指定小數點位數分隔符號的字串。如果省略，則會使用資料載入指令碼中設定的變數 DecimalSep 的值。<br><br>`Num#` 函數支援多種小數分隔符號格式，例如：<br><br>逗號「`,`」：例如 `$1,000,00` 表示一千美元。<br><br>句號「`.` 」：例如 `€ 1,000.00`。<br><br>連字符「`-`」：若用來代替傳統的句號或逗號作為小數點分隔符號，這會顯示類似 `¥1,000-00` 的值。<br><br>如需詳細資訊，請參閱[DecimalSep](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm)。 |
| thou\_sep | 指定千位分隔符號的字串。如果省略，則會使用資料載入指令碼中設定的變數 ThousandSep 的值。<br><br>`Num#` 函數支援千位數字分隔符號的多種選項：<br><br>句號「`.`」：使用句號作為千位分隔符號 (在某些歐洲格式中很常見)，如果與逗號小數點分隔符號搭配則顯示為 `$1.000,00` 。<br><br>空格「 」：使用空格作為千位分隔符號，這在一些歐洲國家很常見。顯示為 `€ 1 000.00`。<br><br>底線「`_`」：使用底線作為千位分隔符號，這有時候用於技術或特定區域格式。顯示像 `$1_000.00` 這樣的值。<br><br>如需詳細資訊，請參閱[ThousandSep](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm)。 |

範例：圖表運算式

| 範例 | 結果 (傳回的字串值) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | 傳回 `35,648.31` 的字串和 `35648.31` 的數值。 |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | 傳回 `35 648.312` 的字串和 `35648.312` 的數值。 |
| `Num#( '35.648,3123', '#', '.' , ',' )` | 傳回 `35.648,3123` 的字串和 ` NULL  `(`-`) 的數值。 |
| `Num#( '35 648,31234', '#', '.' , ',' )` | 傳回 `35 648,31234` 的字串和 ` NULL  `(`-`) 的數值。 |
| `Num#('1,234.56', '#,##0.00')` | 傳回 `1,234.56` 的字串和 `1230.45` 的數值。 |
| `Num#('$1,230.45', '$#,##0.00')` | 傳回 `$1,230.45` 的字串和 `1234.56` 的數值。 |
| `Num#('20220315', 'YYYYMMDD')` | 傳回 `20220315` 的字串和 `20220315` 的數值。 |

## 範例 - Num# 基礎事項

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

#### 載入指令碼

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* `ThousandSep` 和 `DecimalSep` 的標準設定用於說明此範例。

* 使用 `Num#` 函數的前置載入。執行時，這會建立名為 `FormattedSalesAmount` 的附加欄位。

載入指令碼

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

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

建立下列量值：

* `=Num(FormattedSalesAmount)`，用來根據系統設定的數字格式檢視該欄位的數值。

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 |

在此範例中，您可以觀察 `Num#` 函數如何將 `SalesAmount` 資料從其原始文字格式轉換為數值。

## 範例 - Num# 使用情境

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

#### 載入指令碼

概述

資料集包含來自多個國家的不同文字格式的銷售資料。我們希望標準化資料，並顯示在表格中。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Country`

  * `Product`

  * `Amount`

* 前置載入使用 `Num#` 函數轉換 `Amount` 欄位中的值。

載入指令碼

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

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

建立下列量值：

* `Num(Amount)`，用來根據系統設定的數字格式檢視 `Amount` 欄位的數值。

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 |

比較 `Amount` 欄與 `Num(Amount)` 欄時，您會發現使用 `  Num# ` 函數呈現的資料變更了基礎數值，但字串格式保持不變。例如，`Amount` 欄中 `Germany` 的所有值都使用逗號作為小點分隔符號，但 `Num(Amount)` 中的基礎格式對所有值都使用句號。