# Num# — функция скриптa и диаграммы

Num() интерпретирует текстовую строку как числовое значение, то есть преобразует входную строку в число, используя формат, указанный во втором параметре. Если второй параметр опущен, то используются десятичные и тысячные разделители, установленные в скрипте загрузки данных. Пользовательские символы разделителей десятичных разрядов и тысяч являются дополнительными параметрами.

Синтаксис:

Num#(text[, format[, dec\_sep [, thou\_sep ] ] ])

Возвращаемые типы данных: двойное значение

Функция Num#() возвращает двойное значение, которое включает строковое и числовое значения. Функция берет текстовое представление входного выражения и создает число. Формат числа не изменяется; выходное число форматируется так же, как и входное.

Аргументы

| Аргумент | Описание |
| --- | --- |
| text | Текстовая строка для оценки. |
| 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/November2025/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/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm). |

Пример: выражения диаграммы

| Пример | Результаты (возвращаемое строковое значение) |
| --- | --- |
| `Num#( '35,648.31', '#', '.' , ',' )` | Возвращает строку `35,648.31` и числовое значение `35648.31`. |
| `Num#( ‘35 648.312’, '#', '.' , ',' )` | Возвращает строку `35 648.312` и числовое значение `35648.312`. |
| `Num#( '35.648,3123', '#', '.' , ',' )` | Возвращает строку `35.648,3123` и числовое значение ` NULL  `(`-`). |
| `Num#( '35 648,31234', '#', '.' , ',' )` | Возвращает строку `35 648,31234` и числовое значение ` NULL  `(`-`). |
| `Num#('1,234.56', '#,##0.00')` | Возвращает строку `1,234.56` и числовое значение `1230.45`. |
| `Num#('$1,230.45', '$#,##0.00')` | Возвращает строку `$1,230.45` и числовое значение `1234.56`. |
| `Num#('20220315', 'YYYYMMDD')` | Возвращает строку `20220315` и числовое значение `20220315`. |

## Пример. Основы использования функции Num\#

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

#### Скрипт загрузки

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

* Стандартные настройки для `ThousandSep` и `DecimalSep`, чтобы проиллюстрировать этот пример.

* Предшествующая загрузка, использующая функцию `Num#`. При его выполнении создается дополнительное поле под именем `FormattedSalesAmount`.

Скрипт загрузки

```
SET ThousandSep=',';
SET DecimalSep='.';
Example:
LOAD
ProductID,
ProductName,
SalesAmount,
Num#(SalesAmount, '#.##0,00',',','.') AS FormattedSalesAmount
INLINE [
ProductID, ProductName, SalesAmount
1, Product A, '1.234,56'
2, Product B, '2.456,78'
3, Product C, '345,67'
4, Product D, '987,12'
5, Product E, '1.200,45'
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ` ProductID
                                       `

* `ProductName`

* `SalesAmount`

* `FormattedSalesAmount`

Создайте следующую меру:

* `=Num(FormattedSalesAmount)`, чтобы просмотреть числовое значение поля в соответствии с системными параметрами для формата чисел.

Results table

| ProductID | ProductName | SalesAmount | FormattedSalesAmount | Num(FormattedSalesAmount) |
| --- | --- | --- | --- | --- |
| 1 | Product A | 1.234,56 | 1.234,56 | 1234.56 |
| 2 | Product B | 2.456,78 | 2.456,78 | 2456.78 |
| 3 | Product C | 345,67 | 345,67 | 345.67 |
| 4 | Product D | 987,12 | 987,12 | 987.12 |
| 5 | Product E | 1.200,45 | 1.200,45 | 1200.45 |

В этом примере можно наблюдать, как функция `Num#` преобразует данные `SalesAmount` из их исходного формата текста в числовое значение.

## Пример. Сценарий использования функции Num\#

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

#### Скрипт загрузки

Обзор

Набор данных содержит данные о продажах из нескольких стран в различных текстовых форматах. Требуется стандартизировать данные и показать их в таблице.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Country`

  * `Product`

  * `Amount`

* Предшествующая загрузка, которая использует функцию `Num#` для преобразования значений в поле `Amount`.

Скрипт загрузки

```
Example:
LOAD
Country,
Product,
IF(Country = 'Germany', Num#(Amount, '#.##0,00', ',', '.'), Num#(Amount, '#,##0.00')) AS Amount
INLINE [
Country, Product, Amount
Germany, Product A, '1.234,56'
USA, Product B, '2,345.78'
Germany, Product C, '987,12'
USA, Product D, '1,200.45'
Germany, Product E, '345,67'
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ` Product
                                       `

* ` Country
                                       `

* `Amount`

Создайте следующую меру:

* `Num(Amount)`, чтобы просмотреть числовое значение поля `Amount` в соответствии с системными параметрами для формата чисел.

Results table

| Product | Country | Amount | Num(Amount) |
| --- | --- | --- | --- |
| Customer A | Germany | 1.234,56 | 1234.56 |
| Customer B | USA | 2,345.78 | 2345.78 |
| Customer C | Germany | 987,12 | 987.12 |
| Customer D | USA | 1,200.45 | 1200.45 |
| Customer E | Germany | 345,67 | 345.67 |

Сравнивая столбец `Amount` со столбцом `Num(Amount)`, мы видим, что данные, представленные с помощью функции `  Num# `, изменяют базовые числовые значения, но сохраняют строковый формат как есть. Например, все значения для `Germany` в столбце `Amount` используют запятую в качестве десятичного разделителя, но в базовом формате `Num(Amount)` для всех значений используется точка.