# Modificadores de conjunto usando funções de conjunto

Às vezes, você precisa definir um conjunto de valores de campo usando uma definição de conjunto aninhada. Por exemplo, você pode querer selecionar todos os clientes que compraram um produto específico, sem selecionar o produto.

Nesses casos, use as funções do conjunto de elementos `P()` e `E()`. Elas retornam os conjuntos de elementos de valores possíveis e valores excluídos de um campo, respectivamente. Nos colchetes, você pode especificar o campo em questão e uma expressão de conjunto que define o escopo. Por exemplo:

`P({1<Year = {2021}>} Customer)`

Isso retornará o conjunto de clientes que realizaram transações em 2021. Você pode então usar isso em um modificador de conjunto. Por exemplo:

`Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)`

Essa expressão de conjunto selecionará esses clientes, mas não restringirá a seleção a 2021.

Essas funções não podem ser usadas em outras expressões.

Além disso, apenas conjuntos naturais podem ser usados dentro das funções de conjunto de elementos. Ou seja, um conjunto de registos que podem ser definidas por uma seleção simples.

Por exemplo, o conjunto fornecido por `{1-$}` não pode ser sempre definido por meio de uma seleção e, portanto, não é um conjunto natural. O uso dessas funções em conjuntos não naturais retornará resultados inesperados.

## Exemplos: expressões de gráfico para modificadores de conjunto usando funções de conjunto

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm)

#### Exemplos - expressões de gráfico

Script de carregamento

Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados para criar os exemplos de expressão de gráfico abaixo.

```
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
2020-09-16, France, Washer, 1];	
```

Para obter mais informações sobre como usar carregamentos inline, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Expressões de gráfico

Crie uma tabela em uma pasta do Qlik Sense com as seguintes expressões de gráfico.

Tabela - Modificadores de conjunto usando funções de conjunto

| País | Sum(Amount) | Sum({&lt;Country=P({&lt;Year={2019}&gt;}Country)&gt;} Amount) | Sum({&lt;Product=P({&lt;Year={2019}&gt;}Product)&gt;} Amount) | Sum({&lt;Country=E({&lt;Product={Washer}&gt;}Country)&gt;} Amount) |
| --- | --- | --- | --- | --- |
| Totais | 41 | 10 | 17 | 13 |
| Canadá | 14 | 0 | 6 | 0 |
| República Tcheca | 10 | 10 | 10 | 0 |
| França | 4 | 0 | 1 | 0 |
| Alemanha | 13 | 0 | 0 | 13 |

Explicação

* Dimensões:

  * `Country`

* Medidas:

  * `Sum(Amount)`

    Soma `Amount`, sem expressão de conjunto.

  * `Sum({<Country=P({<Year={2019}>} Country)>} Amount)`

    Soma `Amount` para os países associados ao ano `2019`. No entanto, não limitará o cálculo a `2019`.

  * `Sum({<Product=P({<Year={2019}>} Product)>} Amount)`

    Soma `Amount` para os produtos que estão associados ao ano `2019`. No entanto, não limitará o cálculo a `2019`.

  * `Sum({<Country=E({<Product={Washer}>} Country)>} Amount)`

    Soma `Amount` para os países que não estão associados ao produto `Washer`.

Modificadores de conjunto usando funções de conjunto

Modificadores de conjunto usando funções de conjunto

Modificadores de conjunto usando funções de conjunto ![Modificadores de conjunto usando funções de conjunto.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_modifiers_set_functions.png)

Para obter mais informações sobre expressões, consulte [Usando expressões em visualizações](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm).

| Exemplos | Resultados |
| --- | --- |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;} Customer)&gt;} Sales ) | Retorna as vendas da seleção atual, mas somente os clientes que já compraram o produto 'Shoe'. Aqui, a função de elemento P( ) retorna uma lista de clientes possíveis; aqueles decorrentes da seleção 'Shoe' no campo Product. |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;})&gt;} Sales ) | O mesmo que o anterior. Se o campo na função de elemento for omitido, a função retornará os valores possíveis do campo especificado na atribuição externa. |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;} Supplier)&gt;} Sales ) | Retorna as vendas da seleção atual, mas somente os clientes que já forneceram o produto 'Shoe', ou seja, o cliente também é um fornecedor. Aqui, a função de elemento P( ) retorna uma lista de fornecedores possíveis; aqueles decorrentes da seleção 'Shoe' no campo Product. Assim, a lista de fornecedores é usada como uma seleção no campo Customer. |
| sum( {$&lt;Customer = E({1&lt;Product={'Shoe'}&gt;})&gt;} Sales ) | Retorna as vendas da seleção atual, mas somente os clientes que nunca compraram o produto 'Shoe'. Aqui, a função de elemento E( ) retorna a lista de clientes excluídos; aqueles excluídos pela seleção 'Shoe' no campo Product. |