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

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

Модификатор множества состоит из одного или нескольких имен полей, для каждого имени перечислены значения, применяемые к полю. Модификатор заключен в угловые скобки: `< >`

Пример.

* `Sum ( {$<Year = {2015}>} Sales )`

* `Count ( {1<Country = {Germany}>} distinct OrderID )`

* `Sum ( {$<Year = {2015}, Country = {Germany}>} Sales )`

## Множества элементов

Элемент можно определить используя следующие средства:

* Список значений

* Поиск

* Ссылка на другое поле

* Функция множества

Если определение множества элементов пропущено, модификатор множества сбросит любую выборку в этом поле. Например:

`Sum( {$<Year = >} Sales )`

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers.htm)

#### Примеры. Выражения диаграммы

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

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

```
MyTable:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
Belgium, 2014, 182766.87
Belgium, 2015, 178042.33
Brazil, 2014, 174492.67
Brazil, 2015, 2104.22
Canada, 2014, 101801.33
Canada, 2015, 40288.25
Denmark, 2014, 45273.25
Denmark, 2015, 106938.41
Finland, 2014, 107565.55
Finland, 2015, 30583.44
France, 2014, 115644.26
France, 2015, 30696.98
Germany, 2014, 8775.18
Germany, 2015, 77185.68
];
```

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

Выражения диаграммы

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

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

| Страна | Sum(Sales) | Sum({1&lt;Country={Belgium}&gt;} Sales) | Sum({1&lt;Country={"\*A\*"}&gt;} Sales) | Sum({1&lt;Country={"A\*"}&gt;} Sales) | Sum({1&lt;Year={$(=Max(Year))}&gt;} Sales) |
| --- | --- | --- | --- | --- | --- |
| Итоги | 1645397.3 | 360809.2 | 1284588.1 | 443238.88 | 788617.07 |
| Аргентина | 206332.92 | 0 | 206332.92 | 206332.92 | 140037.89 |
| Австрия | 236905.96 | 0 | 236905.96 | 236905.96 | 182739.87 |
| Бельгия | 360809.2 | 360809.2 | 0 | 0 | 178042.33 |
| Бразилия | 176596.89 | 0 | 176596.89 | 0 | 2104.22 |
| Канада | 142089.58 | 0 | 142089.58 | 0 | 40288.25 |
| Дания | 152211.66 | 0 | 152211.66 | 0 | 106938.41 |
| Финляндия | 138148.99 | 0 | 138148.99 | 0 | 30583.44 |
| Франция | 146341.24 | 0 | 146341.24 | 0 | 30696.98 |
| Германия | 85960.86 | 0 | 85960.86 | 0 | 77185.68 |

Объяснение

* Измерения:

  * `Country`

* Меры:

  * `Sum(Sales)`

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

  * `Sum({1<Country={Belgium}>}Sales)`

    Выбрать `Belgium`, а затем суммировать соответствующие `Sales`.

  * `Sum({1<Country={"*A*"}>}Sales)`

    Выбрать все страны, у которых есть `A`, затем суммировать соответствующие `Sales`.

  * `Sum({1<Country={"A*"}>}Sales)`

    Выбрать все страны, название которых начинается с `A`, а затем суммировать соответствующие `Sales`.

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

    Вычислить `Max(Year)`, который равен `2015`, а затем суммировать соответствующие `Sales`.

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

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

Модификаторы множества на основе множеств элементов ![Модификаторы множества на основе множеств элементов.](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_set_modifiers_element_sets.png)

## Перечисленные значения

Наиболее распространенный пример множества элементов — это выражение, основанное на списке значений поля, заключенном в фигурные скобки. Пример.

* `{$<Country = {Canada, Germany, Singapore}>}`

* `{$<Year = {2015, 2016}>}`

Фигурные скобки внутри определяют множество элементов. Отдельные значения разделяются запятыми.

## Кавычки и чувствительность к регистру

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

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

  Соответствует только `New Zealand`.

* `<Country = {"New Zealand"}>`

  Соответствует `New Zealand`, `NEW ZEALAND` и `new zealand`.

Даты должны быть заключены в кавычки, должен использоваться формат даты в рассматриваемом поле. Пример.

* `<ISO_Date = {'2021-12-31'}>`

* `<US_Date = {'12/31/2021'}>`

* `<UK_Date = {'31/12/2021'}>`

Двойные кавычки можно заменить квадратными скобками или апострофами.

## Поиски

Множества элементов также можно создавать через поиски. Например:

* `<Country = {"C*"}>`
* `<Ingredient = {"*garlic*"}>`
* `<Year = {">2015"}>`
* `<Date = {">12/31/2015"}>`

В текстовых поисках можно использовать подстановочные знаки. Звездочка (`*`) представляет любое количество символов, а знак вопроса (`?`) — один символ. Реляционные операторы могут использоваться для определения числовых поисков.

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

Для получения дополнительной информации см. раздел [Модификаторы множества с поиском](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-advanced-searches.htm).

## Расширения со знаком доллара

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

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

Для получения дополнительной информации см. раздел [Модификаторы множества с расширениями со знаком доллара](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-dollar-sign-expansions.htm).

## Выбранные значения в других полях

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

`<OrderDate = DeliveryDate>`

Данный модификатор возьмет выбранные значения из элемента `DeliveryDate` и применит их в качестве выборки к элементу `OrderDate`. Если присутствует множество уникальных значений (больше пары сотен), то данная операция потребует большой загрузки ЦП, поэтому ее следует избегать.

## Функции множества элементов

Множество элементов может быть основано на функциях множества `P()` (возможные значения) и `E()` (исключенные значения).

Например, если требуется выбрать страну, где продается продукт «`Cap`», можно использовать:

`<Country = P({1<Product={Cap}>} Country)>`

Аналогично, если требуется выбрать страны, где не продается продукт «`Cap`», можно использовать:

`<Country = E({1<Product={Cap}>} Country)>`

Для получения дополнительной информации см. раздел [Модификаторы множества с использованием функций множества](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm).

## Подробнее

* [Анализ множеств](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)

* [Идентификаторы множества](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-identifiers.htm)

* [Операторы множеств](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-operators.htm)