# Модификаторы множества с расширениями со знаком доллара

Расширения со знаком доллара — это конструкции, которые рассчитываются перед анализом и вычислением выражения. Затем результат подставляется в выражение вместо `$(…)`. Затем вычисляется выражение с использованием результата расширения со знаком доллара.

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

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

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

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

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

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

`<Year = {$(=Max(Year))}>`

Сначала рассчитывается `Max(Year)`, а полученный результат подставляется в выражение вместо `$(…)`.

Результат после расширения со знаком доллара будет включать выражение, например:

`<Year = {2021}>`

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

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

`<Year = {$(=Max({1} Year))}>`

## Строки

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

`<Country = {'$(=FirstSortedValue(Country,Date)'}>`

Результат после расширения со знаком доллара будет включать выражение, например:

`<Country = {'New Zealand'}>`

Если не используются кавычки, возвращается ошибка синтаксиса.

## Числа

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

Например:

`<Amount = {$(=Num(Max(Amount), '###0.00'))}>`

Результат после расширения со знаком доллара будет включать выражение, например:

`<Amount = {12362.00}>`

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

`<Amount = {$(#=Max(Amount))}>`

## Даты

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

Например:

`<Date = {'$(=Date(Max(Date)))'}>`

Результат после расширения со знаком доллара будет включать выражение, например:

`<Date = {'12/31/2015'}>`

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

Чаще всего рекомендуется ограничивать расчеты последним месяцем (или годом). Затем можно использовать числовой поиск вместе с функцией `AddMonths()`.

Пример.

`<Date = {">=$(=AddMonths(Today(),-1))"}>`

Результат после расширения со знаком доллара будет включать выражение, например:

`<Date = {">=9/31/2021"}>`

При этом будут возвращены все события за последний месяц.

## Пример: выражения диаграммы для модификаторов множества с расширениями со знаком доллара

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-dollar-sign-expansions.htm)

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

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

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

```
Let vToday = Today();
MyTable:
Load 
Year(Date) as Year,
Date#(Date,'YYYY-MM-DD') as ISO_Date, 
Date(Date#(Date,'YYYY-MM-DD'),'M/D/YYYY') as US_Date, 
Country, Product, Amount 
Inline
[Date, Country, Product, Amount
2018-02-20, Canada, Washer, 6
2018-07-08, Germany, Anchor bolt, 10
2018-07-14, Germany, Anchor bolt, 3
2018-08-31, France, Nut, 2
2018-09-02, Czech Republic, Bolt, 1
2019-02-11, Czech Republic, Bolt, 3
2019-07-31, Czech Republic, Washer, 6
2020-03-13, France, Anchor bolt, 1
2020-07-12, Canada, Anchor bolt, 8
2021-10-15, France, Washer, 1];	
```

Для получения дополнительной информации об использовании встроенных загрузок см. [Использование встроенных загрузок для загрузки данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Выражения диаграммы с расширениями со знаком доллара

Создайте таблицу на листе Qlik Sense со следующими выражениями диаграммы.

Таблица. Модификаторы множества с расширениями со знаком доллара

| Country | Sum (Amount) | Sum({&lt;US\_Date={'$(vToday)'}&gt;} Amount) | Sum({&lt;ISO\_Date={"$(=Date(Min(ISO\_Date),'YYYY-MM-DD'))"}&gt;} Amount) | Sum({&lt;US\_Date={"&gt;=$(=AddYears(Max(US\_Date),-1))"}&gt;} Amount) |
| --- | --- | --- | --- | --- |
| Totals | 41 | 1 | 6 | 1 |
| Canada | 14 | 0 | 6 | 0 |
| Czech Republic | 10 | 0 | 0 | 0 |
| France | 4 | 1 | 0 | 1 |
| Germany | 13 | 0 | 0 | 0 |

Объяснение

* Измерения:

  * `Country`

* Меры:

  * `Sum(Amount)`

    Суммировать `Amount` без выражения множества.

  * `Sum({<US_Date={'$(vToday)'}>}Amount)`

    Суммировать `Amount` для всех записей, в которых `US_Date` совпадает с переменной `vToday`.

  * `Sum({<ISO_Date={"$(=Date(Min(ISO_Date),'YYYY-MM-DD'))"}>}Amount)`

    Суммировать `Amount` для всех записей, в которых `ISO_Date` совпадает с первым (наименьшим) возможным элементом `ISO_Date`. Функция `Date()` необходима для того, чтобы формат даты соответствовал полю.

  * `Sum({<US_Date={">=$(=AddYears(Max(US_Date),-1))"}>}Amount)`

    Суммировать `Amount` для всех записей, содержащих `US_Date` эту же дату или последующие даты за год до самого последнего (самого крупного) `US_Date`. Функция `AddYears()` будет возвращать дату в формате, заданным переменной`DateFormat`, и этот формат должен соответствовать содержимому поля `US_Date`.

Модификаторы множества с расширениями со знаком доллара

Модификаторы множества с расширениями со знаком доллара

Модификаторы множества с расширениями со знаком доллара ![Модификаторы множества с расширениями со знаком доллара.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_dollar_expansion.png)

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

| Примеры | Результаты |
| --- | --- |
| sum( {$&lt;Year = {$(#vLastYear)}&gt;} Sales ) | Возвращает продажи за предыдущий год по текущей выборке. Здесь переменная vLastYear, содержащая соответствующий год, используется в расширении со знаком доллара. |
| sum( {$&lt;Year = {$(#=Only(Year)-1)}&gt;} Sales ) | Возвращает продажи за предыдущий год по текущей выборке. Здесь расширение со знаком доллара используется для расчета предыдущего года. |