# 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 )` | Возвращает `kr 35 648,00`, когда параметр `MoneyFormat` имеет значение `kr ##0,00`, а в качестве `MoneyThousandSep` задана точка `' '`. |
| `Money( 35648, '#,##0 ¥', '.' , ',' )` | Возвращает `3,564,800 ¥`, игнорируя параметры `MoneyFormat` и `MoneyThousandSep`, поскольку в функции указаны необязательные параметры `Format`, `dec_sep` и `thou_sep`. |
| `Money(35648)` | Возвращает `$ 35,648.00`, когда параметр `MoneyFormat` имеет значение `$ #,##0.00`, а в качестве `MoneyThousandSep` задана запятая `','`. |

## Пример. Основы использования функции 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 |

Данные о продажах теперь используют формат валюты, определенный в выражении меры. Десятичный разделитель и разделитель разряда тысяч заданы параметрами в скрипте загрузки.