# Примеры использования переменной в выражении

Переменная в Qlik Sense представляет собой именованный элемент, содержащий значение данных. Если переменная используется в выражении, она замещается его значением или описанием переменной.

## Способы использования переменных в выражении

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

### Пример: использование переменной с расширением со знаком доллара

Переменная x содержит текстовую строку Sum(Sales).

В диаграмме можно определить выражение $(x)/12. Результат такой же, как при наличии выражения диаграммы Sum(Sales)/12.

Однако, если изменить значение переменной x, например, на значение Sum(Budget), данные диаграммы будут немедленно пересчитаны с выражением, интерпретированным как Sum(Budget)/12.

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

### Пример: использование переменной с расширением со знаком доллара в сводной таблице

Предположим, есть Сводная таблица или объект Pivot, который содержит следующее:

* Измерения: Product Type и Product Name.

* Меры: Sum(Sales) и Count (distinct InvoiceNumber).

* Элементы в разделе Столбцы ― это Значения (по умолчанию) и поле Quarter.

Можно использовать переменные, чтобы получить интерактивный анализ. Предположим, что создана переменная vUserInteraction с пустым определением. Затем на листе создаются две диаграммы типа Кнопка, настроенные с помощью действия Задать значение переменной:

* Показать больше сведений: нажмите эту кнопку, чтобы задать для vUserInteraction значение `='Yes'`.

* Показать меньше сведений: нажмите эту кнопку, чтобы задать для vUserInteraction значение `='No'`.

В сводную таблицу можно добавить несколько дополнительных мер на диаграмму, например Count(Quantity) и Sum(Cost). Затем настройте для каждого столбца меры следующее значение для Показать столбец, если:

```
'$(Reference)'='Yes'
```

Это позволяет диаграмме адаптироваться к тому, нужна ли пользователю дополнительная информация или нет. Если пользователь нажимает кнопку Показать больше сведений, в таблицу будут добавлены дополнительные меры. Если нет или если пользователь нажимает кнопку Показать меньше сведений, дополнительные меры убираются.

### Дополнительные примеры: использование переменных в расширениях со знаком доллара

Расширения со знаком доллара ― это универсальный и мощный инструмент в Qlik Sense, для которого можно найти множество применений. Для ознакомления с другими примерами см. раздел [Pасширения со знаком доллара](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm).

### Пример: прямая ссылка на переменную в выражении

Переменные не так часто используются в качестве прямой ссылки, но в некоторых случаях это полезно. Пример:

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

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

Можно сделать следующее:

1. Создайте переменную с именем vIntroStatement в диалоговом окне «Переменные», используя следующее определение:

   ```
   ='The following summary was provided by the vendor: '
   ```

2. Добавьте следующую меру в диаграмму Текст и изображение:

   ```
   vIntroStatement & TransactionSummary
   ```

Сохраните вводное утверждение в виде переменной, чтобы централизованно управлять использованием значения. Так, переменную vIntroStatement можно использовать в нескольких диаграммах и в разных мерах (например, может существовать отдельная диаграмма, которая иногда содержит текст, описывающий, сколько единиц было продано в рамках транзакции). Используя переменную, можно упростить процесс обновления выражений в приложении. Чтобы изменить формулировку, достаточно обновить переменную, и изменения будут отражены во всем приложении.

## Интерпретация имен

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

Пример:

Строка XXX представляет поле, переменную, функцию или меру. XXX будет интерпретироваться как одна из них, в зависимости от способа создания выражения.

Примеры интерпретации имен

| Выражение | XXX интерпретируется как |
| --- | --- |
| XXX | мера, переменная или поле |
| $(XXX) | переменная |
| Count(XXX) | поле или переменная |
| XXX() | функция |

Присваивая имя сущности, старайтесь не использовать одно и то же имя для нескольких полей, переменных или мер. Существует строгий порядок очередности при разрешении конфликтов между сущностями с идентичными именами. Этот порядок отражается во всех объектах и контекстах, в которых используются такие сущности. Этот порядок приоритета выглядит следующим образом:

* Внутри агрегирования у поля есть приоритет над переменной. Метки мер не являются релевантными в агрегированиях и не приоритизируются.

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

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

Рекомендуется использовать стандартные правила именования для переменных, создаваемых в приложении. Например, можно убедиться, что все имена ваших переменных начинаются с v. Пример: vUserText. Это помогает быстро распознавать переменные и отличать их от мер, полей и функций.

## Вычисление переменной

Существует несколько способов использования переменных с вычисляемыми значениями в программе Qlik Sense. Результат зависит от того, как это будет определено и названо в выражении.

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

LOAD \* INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

Давайте определим следующие две переменные в диалоговом окне «Переменные».

* ИмяvSalesОпределение'Sum(Sales)'
* ИмяvSales2Определение'=Sum(Sales)'

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

При использовании неизмененной переменной vSales, например, в мере, результатом будет строка Sum(Sales), то есть вычисления не будут выполнены.

В случае добавления расширения со знаком доллара и вызова элемента $(vSales) в выражении переменная будет расширена, а сумма Sales отобразится.

Наконец, если будет вызван элемент $(vSales2), вычисление переменной будет выполнено до ее расширения. Это означает, что отображаемый результат — это итоговая сумма элементов Sales. Разницу использования элементов =$(vSales) и =$(vSales2) в качестве выражений мер можно увидеть в этой диаграмме с отображением результатов:

Результаты

| Dim | $(vSales) | $(vSales2) |
| --- | --- | --- |
| A | 350 | 1560 |
| B | 470 | 1560 |
| C | 740 | 1560 |

Как можно увидеть, элемент $(vSales) показывает частичную сумму для значения измерения, а элемент $(vSales2) показывает итоговую сумму.

[Диалоговое окно «Переменные»](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Sheets/variables-dialog.htm)

[Использование переменных в выражениях](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)

[Работа с переменными в редакторе загрузки данных](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)

[Работа с редактором выражения](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Expressions/work-with-expression-editor.htm)

[Использование выражений в визуализациях](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)