# 带隐式集合运算符的集合修饰符

在集合修饰符中写入选择的标准方法是使用等号。例如：

`Year = {">2015"}`

集合修改器中等号右侧的表达式称为元素集合。它定义了一组不同的字段值，换句话说就是一个选择。

此表示法定义了新选择项，忽略了字段中的当前选择项。因此，如果集合标识符包含此字段中的选择，则旧的选择将替换为元素集合中的选择。

如果要基于字段中的当前选择进行选择，则需要使用不同的表达式

例如，如果您希望尊重旧的选择，并添加年份在 2015 年之后的要求，您可以编写以下内容：

`Year = Year * {">2015"}`

星号是定义交集的集合运算符，因此您将获得 `Year` 中的当前选择与 `2015` 后的附加要求之间的交集。另一种编写方法如下：

`Year *= {">2015"}`

也就是说，赋值操作符 (`*=`) 隐式定义了一个交集。

类似地，可以使用以下公式定义隐式并集、排除和对称差集：`+=`、`–=`、`/=`

## 示例：带有隐式集合运算符的集合修饰符的图表表达式

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

#### 示例 - 图表表达式

加载脚本

将以下数据作为数据加载编辑中的内联加载载入，以创建以下图表表达式示例。

```

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];	
```

有关使用内联加载的详细信息，请参见[使用内联加载来加载数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)。

带有隐式集合运算符的图表表达式

使用以下图表表达式在 Qlik Sense 工作表中创建表。

从国家列表中选择 `Canada` 和 `Czech Republic`。

表格 - 带有隐式集合运算符的图表表达式

| 国家/地区 | Sum(Amount) | Sum({&lt;Country\*={Canada}&gt;} Amount) | Sum({&lt;Country-={Canada}&gt;} Amount) | Sum({&lt;Country+= {France}&gt;} Amount) |
| --- | --- | --- | --- | --- |
| 总计 | 24 | 14 | 10 | 28 |
| 加拿大 | 14 | 14 | 0 | 14 |
| 捷克共和国 | 10 | 0 | 10 | 10 |
| 法国 | 0 | 0 | 0 | 4 |

解释

* 维度：

  * `Country`

* 度量：

  * `Sum(Amount)`

    总和 `Amount`，针对当前选择项。注意，仅 `Canada` 和 `Czech Republic` 具有非零值。

  * `Sum({<Country*={Canada}>}Amount)`

    总和 `Amount`，针对当前选择项，与 `Country` 为 `Canada` 的要求相交。如果 `Canada` 不是用户选择的一部分，则集合表达式将返回一个空集，并且该列的所有行都将为 `0`。

  * `Sum({<Country-={Canada}>}Amount)`

    总和 `Amount`，针对当前选择项，但首先从 `Country` 选择项排除 `Canada`。如果 `Canada` 不是用户选择的一部分，则集合表达式不会更改任何数字。

  * `Sum({<Country+={France}>}Amount)`

    总和 `Amount`，针对当前选择项，但首先将 `France` 添加至 `Country` 选择项 。如果 `France` 不是用户选择的一部分，则集合表达式不会更改任何数字。

带隐式集合运算符的集合修饰符

带隐式集合运算符的集合修饰符

带隐式集合运算符的集合修饰符 ![带隐式集合运算符的集合修饰符。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_implicit_set_operators.png)

有关表达式的更多信息，请参阅[在可视化中使用表达式](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)。

| 实例 | 结果 |
| --- | --- |
| sum( {$&lt;Product += {OurProduct1, OurProduct2} &gt;} Sales ) | 返回当前选择项的销售额，但使用默认并集将产品“OurProduct1”和“OurProduct2”添加到所选产品列表。 |
| sum( {$&lt;Year += {“20\*”,1997} – {2000} &gt;} Sales ) | 返回当前选择项的销售额，但使用默认并集在选择项中添加许多年份：1997 年和所有以“20”开头的年份，但不包括 2000。<br><br>注意：如果当前选择项中包含 2000，它也将在修改后被包括进来。如同 `<Year=Year + ({“20*”,1997}–{2000})>`。 |
| sum( {$&lt;Product \*= {OurProduct1} &gt;} Sales ) | 返回当前选择项的销售额，但仅针对当前所选产品和 OurProduct1 产品的交集。 |