# Процессор вычисления полей

Добавляет новые поля на основе выражений скрипта Qlik.

Процессор Вычисление полей позволяет создавать новые поля в схеме данных и заполнять каждое из них с помощью выражений скрипта Qlik. Скрипт может использовать любые элементы из входной схемы, что позволяет применять комбинации или преобразованные версии существующих полей.

## Использование

* Для работы процессора вычисления полей требуется один входящий поток данных, при этом он может генерировать только один исходящий поток данных.

* Нажмите значок + на панели настройки процессора, чтобы создать несколько вычисляемых полей.

## Ограничения

* Процессор вычисления полей выполняет выражения в контексте скрипта загрузки. Функции агрегирования, такие как `firstSortedValue`, `sum`, `avg` и `count`, не работают в этом процессоре, поскольку он обрабатывает каждую строку индивидуально, а не в рамках агрегирования GROUP BY. Для использования функций агрегирования см. [Процессор Aggregate (Агрегировать)](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataFlow/data-flow-processor-aggregate.htm).

* Функции, предназначенные для диаграмм, не работают в этом процессоре, так как он работает в слое загрузки данных.

* В настоящее время невозможно создать новое поле и сослаться на него внутри того же процессора вычисления полей. Рекомендуется использовать два разных процессора.

## Свойства

Свойства, которые необходимо настроить для вычисления новых полей.

Настройка

| Свойство | Настройка |
| --- | --- |
| Name | Укажите пользовательское имя для вновь созданного поля. |
| Expression | Введите выражение скрипта Qlik в поле, чтобы задать значения нового поля. Для получения дополнительной информации о синтаксисе скрипта Qlik см. раздел [Синтаксис скрипта и функции диаграмм](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/script-syntax-functions.htm). |
| Open editor | Используйте этот параметр, чтобы открыть более мощный редактор скриптов, в котором доступны инструменты для более простого построения выражений. Для получения дополнительной информации см. [Использование редактора выражений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataFlow/data-flow-processor-calculate-fields.htm#Using). |

Чтобы переименовать процессор или изменить его описание, наведите указатель мыши на имя или описание, которое требуется изменить, на панели Properties и нажмите значок the Edit icon .

## Использование редактора выражений

При нажатии кнопки Open editor на панели настройки открывается Expression editor — мощный редактор скриптов, помогающий создавать новые поля. С его помощью можно легко вставлять имена полей или функции, открывать документацию и проверять правильность выражений.

![Использование редактора выражений для создания вычисляемого поля](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_expression_editor.png)

На левой панели можно просмотреть поле, загруженное в данный момент в поток данных, и ознакомиться с широким спектром функций скрипта Qlik. Эта панель разделена на две вкладки:

* Вкладка Fields, на которой перечислены поля, доступные на данном этапе потока данных. Наведите указатель мыши на любое имя поля и нажмите +, чтобы вставить его непосредственно в выражение.

* Вкладка Functions, где можно просматривать функции Qlik. Для поиска конкретной функции можно использовать поле поиска или отфильтровать их с помощью раскрывающегося списка Function category.

  Наведите указатель мыши на любую функцию и нажмите +, чтобы вставить ее непосредственно в выражение.

* Если включить переключатель Explainer guide, при нажатии на функцию будет отображаться краткое описание и ссылка на документацию.

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

* Search and replace — для автоматического поиска определенных значений и их замены при необходимости.

  ![Функция поиска и замены в редакторе выражений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_search_replace.png)

* Help mode — для превращения любой функции, написанной в скрипте, в кликабельную ссылку, ведущую к документации.

  ![Активация режима справки в редакторе скриптов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_help_mode.png)

* Autocomplete — для отображения предложений по мере ввода текста с кратким описанием и примером функции.

  ![Использование автозаполнения для написания функции скрипта](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_autocomplete.png)

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

![Инструмент проверки, показывающий ошибку в скрипте](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_expression_validation.png)

Когда на панели состояния отображается зеленый индикатор Ok, выражение является допустимым. Нажмите Confirm, чтобы использовать это выражение для вычисляемого поля и вернуться в редактор потока данных. После этого можно подтвердить конфигурацию процессора.

## Примеры

* Установка инкрементного значения для использования в качестве идентификатора строк нового поля:

  ```
  RecNo()
  ```

  Для получения дополнительной информации см. раздел [Counter functions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/CounterFunctions/counter-functions.htm).

* Использование условий if/then/else. В этом примере загружены данные о температуре, и требуется добавить дополнительную информацию в зависимости от значений:

  ```

  If(Temperature <= 0 , 'Freezing',
  If(Temperature >= 100, 'Boiling',
  If(Temperature >0 AND Temperature < 100, 'Between')))
  ```

  Для получения дополнительной информации см. раздел [if — функция скрипта и диаграммы](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/if.htm).

* Выполнение нескольких математических операций в одном процессоре. В наборе данных, содержащем поля с количеством проданных единиц, а также ценой за единицу и себестоимостью единицы, можно создать два новых поля для общего дохода и общей стоимости.

  1. В первом поле введите total\_revenue в качестве имени нового поля и следующее выражение:

     ```
     [Units Sold] * [Unit Price]
     ```

  2. Нажмите значок + на панели настройки процессора, чтобы создать еще одно вычисляемое поле.

  3. Во втором поле введите total\_cost в качестве имени нового поля и следующее выражение:

     ```
     [Units Sold] * [Unit Cost]
     ```

Другие примеры выражений скрипта см. в разделах [Regular statements](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-regular-statements.htm) и [Script and chart functions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/functions-in-scripts-chart-expressions.htm).