# Num 指令碼與圖表函數

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

語法：

Num(number[, format[, dec\_sep [, thou\_sep]]])

傳回的資料類型： 雙值

此 Num 函數會傳回含有字串和數值的雙值。這些函數採用輸入運算式的數值，並產生代表數字的字串。

引數

| 引數 | 描述 |
| --- | --- |
| number | 要評估的文字字串。 |
| 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)。 |

如需數字格式化的詳細資訊，請參閱[數字和時間格式的慣例](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm)。

範例：圖表運算式

| 範例 | 結果 (傳回的字串值) |
| --- | --- |
| `Num(35648.312)` | 傳回 `35648.312` (根據指令碼中的環境變數) |
| `Num(35648.312, '0.0', '.')` | 傳回 `35648.3` |
| `Num(35648.312, '0,00', ',')` | 傳回 `3,56,48` |
| `Num(35648.312, '#,##0.0', '.', ',')` | 傳回 `35,648.3` |
| `Num(35648.312, '# ##0', ',', ' ')` | 傳回 `35 648` |

## 範例 - Num 基礎事項

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

#### 圖表運算式

概述

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

載入指令碼包含：

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

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

  * `InputValue`

載入指令碼

```
Example:
Load * inline [
InputValue
35648
3564800
356.48
];
```

結果

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

* ` InputValue
                                       `

建立下列量值：

* `=Num(InputDate)`，用來檢視值，作為使用系統設定格式化的數字。

* `=Num(InputValue, '0.0', '.')`，用來檢視值，作為使用函數中提供的格式來格式化的數字。

* `=Num(InputValue, '0,00', ',')`，用來檢視值，作為使用函數中提供的格式來格式化的數字。

* `=Num(InputValue, '#,##0.0', '.', ',')`，用來檢視值，作為使用函數中提供的格式來格式化的數字。

* `=Num(InputValue, '# ##0', ',', ' ')`，用來檢視值，作為使用函數中提供的格式來格式化的數字。

Results table

| InputValue | Num(InputDate) | Num(InputValue, '0.0', '.') | Num(InputValue, '0,00', ',') | Num(InputValue, '#,##0.0', '.', ',') | Num(InputValue, '# ##0', ',', ' ') |
| --- | --- | --- | --- | --- | --- |
| 356.48 | 356.48 | 356.5 | 3,56 | 356.5 | 356 |
| 35648 | 35648 | 35648.0 | 3,56,48 | 35,648.0 | 35 648 |
| 3564800 | 3564800 | 3564800.0 | 3,56,48,00 | 3,564,800.0 | 3 564 800 |

結果顯示 `Num` 函數如何根據函數運算式中提供的格式顯示 `InputValue` 欄位的值。

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

#### 載入指令碼

`Num` 函數可用於載入指令碼，以格式化數字，即使指令碼中已設定千位和小數分隔符號。以下的載入指令碼包括特定的千位和小數分隔符號，但使用 `Num` 以不同的方式格式化資料。

載入指令碼

在 資料載入編輯器 中，建立新的區段，然後新增範例指令碼並執行。然後，至少將結果表格中列出的欄位新增至您應用程式中的工作表以查看結果。

```
SET ThousandSep=',';
SET DecimalSep='.';
Transactions:
Load
*,
Num(transaction_amount) as [No formatting],
Num(transaction_amount,'0') as [0],
Num(transaction_amount,'#,##0') as [#,##0],
Num(transaction_amount,'# ###,00') as [# ###,00],
Num(transaction_amount,'# ###,00',',',' ') as [# ###,00 , ',' , ' '],
Num(transaction_amount,'#,###.00','.',',') as [#,###.00 , '.' , ','],
Num(transaction_amount,'$#,###.00') as [$#,###.00],
;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, discount, customer_id, size, color_code
3750, 20180830, 12423.56, 23, 0,2038593, L, Red
3751, 20180907, 5356.31, 6, 0.1, 203521, m, orange
3752, 20180916, 15.75, 1, 0.22, 5646471, S, blue
3753, 20180922, 1251, 7, 0, 3036491, l, Black
3754, 20180922, 21484.21, 1356, 75, 049681, xs, Red
3756, 20180922, -59.18, 2, 0.333333333333333, 2038593, M, Blue
3757, 20180923, 3177.4, 21, .14, 203521, XL, Black
];
```

結果

Qlik SenseQlik Sense 表格顯示載入指令碼中 NumNum 函數的不同使用方式的結果。表格的第四欄包含不正確的格式，例如用途。

| No formatting | 0 | #,##0 | # ###,00 | # ###,00 , ',' , ' ' | #,###.00 , '.' , ',' | $#,###.00 |
| --- | --- | --- | --- | --- | --- | --- |
| -59.18 | -59 | -59 | -59###,00 | -59,18 | -59.18 | $-59,18 |
| 15.75 | 16 | 16 | 16###,00 | 15,75 | 15.75 | $15,75 |
| 1251 | 1251 | 1,251 | 1251###,00 | 1 251,00 | 1,251.00 | $1,251.00 |
| 3177.4 | 3177 | 3,177 | 3177###,00 | 3 177,40 | 3,177.40 | $3,177.40 |
| 5356.31 | 5356 | 5,356 | 5356###,00 | 5 356,31 | 5,356.31 | $5,356.31 |
| 12423.56 | 12424 | 12,424 | 12424###,00 | 12 423,56 | 12,423.56 | $12,423.56 |
| 21484.21 | 21484 | 21,484 | 21484###,00 | 21 484,21 | 21,484.21 | $21,484.21 |

## 範例 - Num 使用情境

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

#### 圖表運算式

概述

資料集包含您想要使用更簡單的數字格式呈現的銷售資料。

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

載入指令碼包含：

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

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

  * `Customer`
  * `Sales`

載入指令碼

```
Example:
Load * inline [
Customer, Sales
Customer A, 2550000
Customer B, 12500
Customer C, 15000
Customer D, 250
];
```

結果

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

* ` Customer
                                       `

建立下列量值：

* `=If(Sales > 1000000, Num(Sales/1000000, '#,##0.00M'), If(Sales > 1000, Num(Sales/1000, '#,##0.00K'), Num(Sales, '#,##0.00')))`，用來設定值的數字呈現方式。

Results table

| Customer | If(Sales &gt; 1000000, Num(Sales/1000000, '#,##0.00M'), If(Sales &gt; 1000, Num(Sales/1000, '#,##0.00K'), Num(Sales, '#,##0.00'))) |
| --- | --- |
| Customer A | 2.55M |
| Customer B | 12.50K |
| Customer C | 15.00K |
| Customer D | 250.00 |

第 2 欄中的量值運算式使用 `Num` 函數以簡化的數字格式呈現資料。

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

#### 載入指令碼

`Num` 函數可用於載入指令碼，以百分比格式化數字。

載入指令碼

在資料載入編輯器中，建立新的區段，然後新增範例指令碼並執行。然後將結果資料行中列出的欄位新增至您應用程式中的工作表以查看結果。

```
SET ThousandSep=',';
SET DecimalSep='.';
Transactions:
Load
*,
Num(discount,'#,##0%') as [Discount #,##0%]
;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, discount, customer_id, size, color_code
3750, 20180830, 12423.56, 23, 0,2038593, L, Red
3751, 20180907, 5356.31, 6, 0.1, 203521, m, orange
3752, 20180916, 15.75, 1, 0.22, 5646471, S, blue
3753, 20180922, 1251, 7, 0, 3036491, l, Black
3754, 20180922, 21484.21, 1356, 75, 049681, xs, Red
3756, 20180922, -59.18, 2, 0.333333333333333, 2038593, M, Blue
3757, 20180923, 3177.4, 21, .14, 203521, XL, Black
];
```

Qlik SenseQlik Sense 表格顯示載入指令碼中使用的 `Num`Num 函數結果，以格式化百分比。

| Discount | Discount #,##0% |
| --- | --- |
| 0 | 0% |
| 0.1 | 10% |
| 0.22 | 22% |
| 0 | 0% |
| 75 | 7,500% |
| 0.333333333333333 | 33% |
| .14 | 14% |