# 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/ru-RU/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/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Для получения дополнительной информации о форматировании чисел см. [Условия для форматов числа и времени](https://help.qlik.com/ru-RU/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% |