# Money - 指令碼與圖表函數

Money() 將運算式的格式以數值方式設定為金額值，使用在資料載入指令碼或作業系統 (除非提供格式字串) 的系統變數集中設定的格式，以及選用的小數與千位分隔符號。

語法：

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

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| number | 要格式設定的數字。 |
| format | 說明如何對所產生貨幣字串進行格式設定的字串。如果省略，則會使用 `MoneyFormat` 資料載入指令碼中設定的值。<br><br>`Money` 函數支援多種不同日期結構的格式選項，例如：<br><br>`$#,##0.00`：新增美元符號和兩位小數。<br><br>`€ #,##0`：新增歐元符號，沒有小數位數，歐元符號後面有一個空格。<br><br>`​¥#,##0`：新增日圓符號，沒有小數位數。<br><br>`$#,##0;($#,##0)`：以括號格式化負值。<br><br>`₣ #.##0,00`：新增瑞士法郎符號，以句號作為千位分隔符號，以逗號作為小數點 (例如 `  ₣ 1.000,00 `)。<br><br>`R #,##0.00`：南非鍰符號，有兩位小數，鍰符號後面有空格。<br><br>`$ #,##0.000`：將三位小數新增至美元格式。 |
| dec\_sep | 指定小數點位數分隔符號的字串。如果省略，則會使用資料載入指令碼中設定的 `MoneyDecimalSep` 值。<br><br>`Money` 函數支援多種小數分隔符號格式，例如：<br><br>逗號「`,`」：例如 `$1,000,00` 表示一千美元。<br><br>句號「`.` 」：例如 `€ 1,000.00`。<br><br>連字符「`-`」：若用來代替傳統的句號或逗號作為小數點分隔符號，這會顯示類似 `¥1,000-00` 的值。 |
| thou\_sep | 指定千位分隔符號的字串。如果省略，則會使用資料載入指令碼中設定的 `MoneyThousandSep` 值。<br><br>`Money` 函數支援千位數字分隔符號的多種選項：<br><br>句號「`.`」：使用句號作為千位分隔符號 (在某些歐洲格式中很常見)，如果與逗號小數點分隔符號搭配則顯示為 `$1.000,00` 。<br><br>空格「 」：使用空格作為千位分隔符號，這在一些歐洲國家很常見。顯示為 `€ 1 000.00`。<br><br>底線「`_`」：使用底線作為千位分隔符號，這有時候用於技術或特定區域格式。顯示像 `$1_000.00` 這樣的值。 |

如果省略 format、 dec\_sep和 thou\_sep 引數，則會在格式化輸出的每個特定部分時，使用作業系統中設定的貨幣格式。在建立指令碼時，作業系統設定會自動作為系統變數包含在內，進而確保這些內容在整個應用程式中保持一致。

這些系統變數是 MoneyFormat、MoneyDecimalSep 和 MoneyThousandSep，分別對應到 format、dec\_sep 和 thou\_sep 函數引數。

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `Money( 35648 )` | 若 `MoneyFormat` 設定為 `kr ##0,00` 且 `MoneyThousandSep` 是句號 `' '`，則會傳回 `kr 35 648,00`。 |
| `Money( 35648, '#,##0 ¥', '.' , ',' )` | 由於函數中提供了選用參數 `Format`、`dec_sep` 和 `thou_sep`，因此忽略 `MoneyFormat` 設定和 `MoneyThousandSep` 設定，藉此傳回 `3,564,800 ¥`。 |
| `Money(35648)` | 若 `MoneyFormat` 設定為 `$ #,##0.00` 且 `MoneyThousandSep` 是逗號 `','`，則會傳回 `$ 35,648.00`。 |

## 範例 - Money 基礎事項

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

#### 圖表運算式

概述

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

載入指令碼包含：

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

* 資料表格中稱為 `InputValue` 的一個欄位。

* 以下變數格式：

  * `MoneyFormat` 變數，使用格式：`kr ##0,00`

  * `MoneyThousandSep` 變數設定為使用空格 `' '`

載入指令碼

```
SET MoneyFormat='kr ##0,00';
SET MoneyThousandSep=' ';
Example:
Load * inline [
InputValue
35648
3564800
];
```

結果

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

* `InputValue`

建立下列量值：

* `=Money(InputValue)`，用來檢視值，作為使用系統設定格式化的貨幣。

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

* `=Num(InputValue)`，用來傳回數值。

Results table

| InputValue | Money(InputValue) | Money(InputValue, '#,##0 ¥', '.' , ',') | Num(InputValue) |
| --- | --- | --- | --- |
| 35648 | kr35 648,00 | 35,648 ¥ | 35648 |
| 3564800 | kr3 564 800,00 | 3,564,800 ¥ | 3564800 |

在此範例中，您可以看到 `Money` 函數如何顯示值以及格式參數中的值如何變更輸出。

## 範例 - 使用不同格式設定的 Money 基礎事項

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

#### 圖表運算式

概述

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

載入指令碼包含：

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

* 資料表格中稱為 `InputValue` 的一個欄位。

* 以下變數格式：

  * `MoneyFormat` 變數，使用格式：`$ #,##0.00`

  * `MoneyThousandSep` 變數設定為使用逗號 `','`

載入指令碼

```
SET MoneyFormat='$ #,##0.00';
SET MoneyThousandSep=',';
Example:
Load * inline [
InputValue
35648
3564800
];
```

結果

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

* `InputValue`

建立下列量值：

* `=Money(InputValue)`，用來檢視值，作為使用系統設定格式化的貨幣。

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

* `=Num(InputValue)`，用來傳回數值。

Results table

| InputValue | Money(InputValue) | Money(InputValue, '#,##0 ¥', '.' , ',') | Num(InputValue) |
| --- | --- | --- | --- |
| 35648 | $ 35,648.00 | 35,648 ¥ | 35648 |
| 3564800 | $ 3,564,800.00 | 3,564,800 ¥ | 3564800 |

在此範例中，您可以看到 `Money` 函數如何顯示值以及格式參數中的值如何變更輸出。

## 範例 - Money 使用情境

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

#### 圖表運算式

概述

接收以多種貨幣表示的客戶銷售資料。您想要使用相關的貨幣格式在表格中顯示資料。

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

載入指令碼包含：

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

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

  * `Customer`
  * `CurrencyCode`
  * `Sales`

* 以下變數格式：

  * `MoneyFormat` 變數，使用格式：`$ ###0.00;-$ ###0.00`

  * `MoneyThousandSep` 變數設定為使用逗號 `','`

  * `MoneyDecimalSep` 變數設定為使用句號「.」

載入指令碼

```
SET MoneyThousandSep=',';
SET MoneyDecimalSep='.';
SET MoneyFormat='$ ###0.00;-$ ###0.00';
Example:
Load * inline [
Customer, CurrencyCode, Sales
Customer A, USD, 100008
Customer B, EUR, 12500
Customer C, YEN, 15000
];
```

結果

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

* `Customer`

建立下列量值：

* `=Money(Sales, If(CurrencyCode = 'USD', '$#,##0.00', If(CurrencyCode = 'EUR', '€ #,##0.00', '¥#,##0')))`，用來以正確的貨幣格式顯示貨幣。

Results table

| Customer | Money(Sales, If(CurrencyCode = 'USD', '$#,##0.00', If(CurrencyCode = 'EUR', '€ #,##0.00', '¥#,##0'))) |
| --- | --- |
| Customer A | $100,008.00 |
| Customer B | € 12,500.00 |
| Customer C | ¥15,000 |

銷售資料現在使用量值運算式中定義的貨幣格式。小數和千位參數使用載入指令碼中的設定。