# Флаг сохранения пустого набора

Вы можете использовать символ `&` (флаг сохранения пустого набора) в начале некоторых внешних выражений набора, чтобы переопределить [неявную очистку набора выбора](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/empty-set-preserve-flag.htm#Implicit) во время анализа пользователем. Флаг сохранения пустого набора позволяет изменять способ расчета и представления агрегаций, когда пользователи делают выбор, не требуя переписывания длинных, сложных выражений набора.

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

```
{&<Country*={'Sweden', 'Denmark'}>} {<ProductCategory={'shirts'}>} Sum( Sales )
```

## Фон

### Условия использования

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

* По крайней мере одно внутреннее и одно внешнее выражение набора

* Два или более внешних выражения набора

Используйте флаг сохранения пустого набора, когда вы хотите избежать [Неявная очистка набора выбора](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/empty-set-preserve-flag.htm#Implicit).

### Неявная очистка набора выбора

Неявная очистка набора выбора — это внутреннее поведение, которое иногда может быть нежелательным для анализа конечным пользователем при использовании сложных цепочек выражений набора.Неявная очистка набора выбора может происходить для выражений набора, которые структурированы в соответствии с [Условия использования](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/empty-set-preserve-flag.htm#Requirements).

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

1. Одно или несколько внешних выражений набора в цепочке — в частности, первое (или единственное) и любые последующие внешние выражения набора, кроме последнего, — определяют наборы данных. Пример: `Country*={'Sweden', 'Denmark'}>}`

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

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

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

Такое поведение приводит к значениям агрегации, которые могут быть неожиданными и могут привести к непоследовательному анализу. Чтобы обойти неявную очистку набора выбора, можно использовать флаг сохранения пустого набора. См. [Решение: Использование флага сохранения пустого набора](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/empty-set-preserve-flag.htm#Solution).

### Решение: Использование флага сохранения пустого набора

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

Флаг сохранения пустого набора обеспечивает:

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

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

## Синтаксис

Во внешнем выражении набора флаг сохранения пустого набора помещается как одиночный символ `&` в начале выражения — то есть перед модификаторами набора, идентификаторами и операторами.

Примеры:

Примеры — флаг сохранения пустого набора

| Выражение | Выражение без флага сохранения пустого набора |
| --- | --- |
| `{&<Country*={'Sweden', 'Denmark'}>} {<ProductCategory={'shirts'}>} Sum( Sales )` | `{<Country={'Sweden'}>} {<ProductCategory={'shirts'}>} Sum (Sales)` |
| `{& <Year=, Product={XI345}>} {<Region={Europe}>} Sum (Sales)` | `{<Year=, Product={XI345}>} {<Region={Europe}>} Sum (Sales)` |

## Подробности и примеры

Для получения более подробной информации см. [Цепочки из нескольких внешних и внутренних выражений множества](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-expressions-inner-and-outer.htm#Chains).

## Подробнее

* [Анализ множеств](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Внутренние и внешние выражения множества](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-expressions-inner-and-outer.htm)