# Money スクリプトおよびチャート関数

Money() は、データ ロード スクリプトのシステム変数またはオペレーティング システムの書式設定 (書式文字列が提供されている場合を除く)、およびオプションの小数点記号と千の桁区切りを使用して数式を数字で金額値として書式設定します。

構文:

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

戻り値データ型： デュアル

引数

| 引数 | 説明 |
| --- | --- |
| number | 書式設定する数値。 |
| format | 結果として返される通貨文字列の書式を設定する方法を記述する文字列。省略されている場合は、データ ロード スクリプトで設定された `MoneyFormat` 値が使用されます。<br><br>`Money` 関数は、さまざまな日付構造に対して多くの形式オプションをサポートしています。次に例を示します。<br><br>​`$#,##0.00`: ドル記号と小数点 2 桁を追加します。<br><br>`€ #,##0`: ユーロ記号を追加し、小数点を付けず、ユーロ記号の後にスペースを入れます。<br><br>`​¥#,##0`: 小数点なしの日本円記号を追加します。<br><br>​`$#,##0;($#,##0)`: 負の値を括弧で囲んでフォーマットします。<br><br>​`₣ #.##0,00`:​ 3 桁区切りとしてピリオド、小数点としてカンマを使用したスイス フラン記号を追加します (例: `  ₣ 1.000,00 `)。<br><br>​`R #,##0.00`: 小数点第 2 位とランド記号の後のスペースがある南アフリカのランド記号。<br><br>​`$ #,##0.000`: ドル形式に小数点以下 3 桁を追加します。 |
| dec\_sep | 小数点記号を指定する文字列。省略されている場合は、データ ロード スクリプトで設定された `MoneyDecimalSep` 値が使用されます。<br><br>`Money` 関数は、次のような多くの小数点区切り形式をサポートしています。<br><br>カンマ​「`,`」: 千ドルは `$1,000,00` など。<br><br>ピリオド 「`.`」: ​`€ 1,000.00` など。<br><br>ハイフン「`-`」: 小数点の記号として従来のピリオドやカンマの代わりに使用すると、`¥1,000-00` のような値が表示されます。 |
| thou\_sep | 3 桁区切りの記号を指定する文字列。省略されている場合は、データ ロード スクリプトで設定された `MoneyThousandSep` 値が使用されます。<br><br>`Money` 関数は、3 桁区切りの記号の多くのオプションをサポートしています。<br><br>ピリオド​「`.`」: 3 桁ごとの区切りにピリオドを使用します (一部のヨーロッパ形式で一般的)。小数点の記号のコンマと組み合わせると `$1.000,00` として表示されます。<br><br>スペース​「 」: 一部のヨーロッパ諸国で一般的な、3 桁ごとの区切りにスペースを使用します。`€ 1 000.00` と表示されます。<br><br>アンダースコア​「`_`」:​ 3 桁ごとの区切りとしてアンダースコアを使用します。これは、技術的な形式や特定の地域の形式で使用されることがあります。`$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/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Money.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の 1 つの項目は `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/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Money.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の 1 つの項目は `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/cloud-services/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 |

売上データで、メジャーの数式で定義された通貨形式が使用されるようになりました。小数点および 3 桁区切りのパラメーターは、ロード スクリプトの設定を使用します。