# Evaluate — функция скрипта

Evaluate() определяет, можно ли входную текстовую строку рассматривать в качестве допустимого выражения Qlik Sense. Если да, то возвращает значение выражения в качестве строки. Если входная строка не является допустимым выражением, будет возвращено значение NULL.

Синтаксис:

Evaluate(expression\_text)

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| text | Текстовая строка для оценки. |

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

Пример использования функции и результаты

| Пример функции | Результат |
| --- | --- |
| `Evaluate( 5 * 8 )` | Возвращает `40` |

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

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

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

Обзор

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

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

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

* Одно поле в таблице данных под именем `ExpressionText`.

* Предшествующая загрузка, которая использует функцию `Evaluate` для оценки поля `ExpressionText` и возвращает два новых поля: `Evaluated` и `Evaluatedx4`.

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

```
Example:
Load
ExpressionText
, Evaluate(ExpressionText) as Evaluated
, Evaluate(ExpressionText)*4 as Evaluatedx4
;
Load * Inline
[ExpressionText
4
5+3
100/5
123*2
329-9
0123456789012345678
1234567890123456789
0123456.5512
0123456.5512479994578952364859346469
Today()
Bob
];
```

Результаты

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

* `ExpressionText`

* `Evaluated`

* `Evaluatedx4`

Results table

| ExpressionText | Evaluated | Evaluatedx4 |
| --- | --- | --- |
| 4 | 4 | 16 |
| 5+3 | 8 | 32 |
| 100/5 | 20 | 80 |
| 123\*2 | 246 | 984 |
| 329-9 | 320 | 1280 |
| 0123456789012345678 | 0123456789012345678 | 4.9382715604938e+17 |
| 1234567890123456789 | 1234567890123456789 | 4.9382715604938e+18 |
| 0123456.5512 | 0123456.5512 | 493826.2048 |
| 0123456.5512479994578952364859346469 | 0123456.5512479994578952364859346469 | 493826.204992 |
| Today() | 11/5/2024 | 182404 |
| Bob | - | - |

Вывод функции `Evaluate` возвращает значения для всех строк `ExpressionText`, кроме последней строки. Строка `Bob` не может быть вычислена, поэтому функция не возвращает никакого значения ― NULL. Все строки оценены, например, во второй строке добавлено `5` и `3`, чтобы получить `8`. Некоторые из строк `ExpressionText` возвращают строку как есть, потому что строка уже оценивается как число. Например, строка `0123456789012345678` оценивается как то же число.

Хотя Qlik Sense имеет предел точности 14 знаков для числовых значений, функция `Evaluate` оценила 18-значные строки как число и применила умножение в рамках скрипта. Это полезно для работы с очень большими числами внутри скрипта.

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

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

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

Обзор

Набор данных о продажах содержит товары, цены и скидки. В этом примере выводится цена со скидкой для продуктов.

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

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

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

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

  * `Product`

  * `Price`

  * `Discount %`

* Предшествующая загрузка, которая берет значения `Price` и `Discount %` и вычисляет дополнительное поле под именем `DiscountedPrice`. Это новое поле использует функцию `Evaluate` для расчета цены за вычетом скидки.

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

```
Example:
LOAD
Product,
Price,
[Discount (%)],
Price * (1 - ​​Evaluate([Discount (%)] / 100)) AS DiscountedPrice
INLINE [
Product, Price, Discount (%)
Laptop, 1000, 15
Smartphone, 800, 10
Tablet, 600, 20
Headphones, 200, 5
];
```

Результаты

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

* `Product`

* `Price`

* `Discount %`

* `DiscountedPrice`

Results table

| Product | Price | Discount % | DiscountedPrice |
| --- | --- | --- | --- |
| Headphones | 200 | 5 | 190 |
| Tablet | 600 | 20 | 480 |
| Smartphone | 800 | 10 | 720 |
| Laptop | 1000 | 15 | 850 |

Вывод функции `Evaluate` демонстрирует, как можно использовать функцию для вычисления значений.