Перейти к основному содержимому Перейти к дополнительному содержимому

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

Переменная в 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асширения со знаком доллара.

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

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

Предположим, есть поле 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) показывает итоговую сумму.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!