# 含集合運算子的集合修飾詞

集合運算子用來納入、排除或交集不同的元素集。這結合不同的方法來定義元素集。

運算子與用於集合識別碼的內容相同。

運算子

| 運算子 | 描述 |
| --- | --- |
| `+` | 聯集。此二元運算會傳回一個集合，其中包含的記錄或元件屬於兩個集合運算元中的任一個集合。 |
| `-` | 差集。此二元運算會傳回一個集合，其中包含的記錄或元件屬於兩個集合算元中的第一個集合，但不屬於第二個集合。此外，當作為一元運算子時，會傳回補集。 |
| `*` | 交集。此二元運算會傳回一個集合，其中包含的記錄或元件同時屬於兩個集合運算元。 |
| `/` | 對稱差 `(XOR)`。此二元運算會傳回一個集合，其中包含的記錄或元件屬於任一個集合運算元，但不同時屬於這兩個集合運算元。 |

例如，以下兩個修飾詞定義相同的欄位值集合：

* `<Year = {1997, "20*"}>`

* `<Year = {1997} + {"20*"}>`

兩個運算式都選取 `1997` 和以 `20` 為開頭的年份。換言之，這是兩個條件的聯集。

集合運算子也允許更複雜的定義。例如︰

`<Year = {1997, "20*"} - {2000}>`

此運算式將會選取與上述相同的年份，但也會排除 `2000` 年。

如需詳細資訊，請參閱 [集合運算子](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-operators.htm)。

## 範例：含集合運算子的集合修飾詞的圖表運算式

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-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-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)。

圖表運算式

透過下列圖表運算式在 Qlik Sense 工作表中建立表格。

表格 - 含集合運算子的集合修飾詞

| 國家/地區 | Sum(Amount) | Sum({&lt;Year={"&gt;2018"}-{2020}&gt;} Amount) | Sum({&lt;Country=-{Germany}&gt;} Amount) | Sum({&lt;Country={Germany}+P({&lt;Product={Nut}&gt;}Country)&gt;} Amount) |
| --- | --- | --- | --- | --- |
| 總計 | 41 | 9 | 28 | 17 |
| 加拿大 | 14 | 0 | 14 | 0 |
| 捷克 | 10 | 9 | 10 | 0 |
| 法國 | 4 | 0 | 4 | 4 |
| 德國 | 13 | 0 | 0 | 13 |

解釋

* 維度：

  * `Country`

* 量值：

  * `Sum(Amount)`

    不含集合運算式的 `Amount` 總和。

  * `Sum({<Year={">2018"}-{2020}>}Amount)`

    `2018` 之後所有年份的總和 `Amount`，`2020` 除外。

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

    所有國家的總和 `Amount`，`Germany` 除外。記下一元排除運算子。

  * `Sum({<Country={Germany}+P({<Product={Nut}>}Country)>}Amount)`

    `Germany` 以及所有與產品 `Nut` 相關國家的總和 `Amount`。

含集合運算子的集合修飾詞

含集合運算子的集合修飾詞

含集合運算子的集合修飾詞 ![含集合運算子的集合修飾詞。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_set_operators.png)

如需關於運算式的詳細資訊，請參閱[在視覺化中使用運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)。

| 範例 | 結果 |
| --- | --- |
| sum( {$&lt;Product = Product + {OurProduct1} – {OurProduct2} &gt;} Sales ) | 會傳回目前選項的銷售額，但「OurProduct1」產品會加入所選產品的清單中，而「OurProduct2」則會從所選產品的清單中移除。 |
| sum( {$&lt;Year = Year + ({“20\*”,1997} – {2000}) &gt;} Sales ) | 會傳回目前選項的銷售額，但加上「Year」欄位中的其他選項：1997 年和以「20」開頭的所有年份，不過不包含 2000 年。<br><br>請注意，如果 2000 年包含在目前選項中，則修改後仍會包含在內。 |
| sum( {$&lt;Year = (Year + {“20\*”,1997}) – {2000} &gt;} Sales ) | 會傳回與上例幾乎相同的結果，但此處會排除 2000 年，即使起初包含在目前選項中。此範例顯示了有時候使用括弧定義優先順序的重要性。 |
| sum( {$&lt;Year = {“\*”} – {2000}, Product = {“\*bearing\*”} &gt;} Sales ) | 會傳回目前選項的銷售額，但包含「Year」中的新選項：除了 2000 年之外的所有年份；而且僅針對包含字串「bearing」的產品。 |