# 集合修飾詞

集合可透過額外或變更的選項加以修改。這樣的修改可編寫於集合運算式中。

修飾詞的組成為一或數個欄位名稱、各個欄位的後面都加上要對該欄位做出的選項，然後全部括在 &lt; 和 &gt; 內。例如：`<Year={2007,+2008},Region={US}>`。欄位名稱和欄位值可照例以引號括住，例如 `<[Sales Region]={’West coast’, ’South America’}>`。

集合修飾詞可修改前面的集合識別碼選擇。如果沒有引用集合識別碼，則目前選項狀態是隱含的。

有許多方法可定義選項，如下所述。

## 以其他欄位為基礎

簡單的方式是，選項會以另一個欄位的選取值為基礎，例如 `<OrderDate = DeliveryDate>`。此修飾詞會取用 DeliveryDate 的選取值，然後將其套用為 OrderDate 的選項。如果有許多相異值 (超過幾百個)，則此運算會需要大量的 CPU，應避免使用。

## 根據元素集合

最常見的例子是集合運算式以大括弧括起來的欄位值清單為基礎。這些值以逗號分隔，例如 `<Year = {2007, 2008}>`。大括弧用於定義元素集合，其中的元素可為明確的欄位值或欄位值的搜尋。

除非列出的值包含空格或特殊字元，否則不需要引號。列出的值會恰好符合欄位值。此比較不區分大小寫。

若列出的值包含空格或特殊字元，或者若您想要使用萬用字元，則您需要以引號將值括起來。若列出的值為明確的欄位值，則應使用單引號。而列出的值之間會區分大小寫，且將會產生個別的欄位值。

雙引號應用於搜尋，亦即包含萬用字元或以相關運算子或等號開始的字串。例如，`<Ingredient = {"*Garlic*"}>` 將會選取包含字串 ’Garlic’ 的所有成分。雙引號可用括弧替代，例如 `<Ingredient = {[*Garlic*]}>`。雙引號也能用抑音符號替代，例如 ``<Ingredient = {`*Garlic*`}>``。搜尋不區分大小寫。

資訊備註

在先前版本的 QlikView 中，沒有區分單引號和雙引號的差異，所有引號內的字串皆作為搜尋來處理。為了維持回溯相容性，透過舊版 QlikView 建立的文件將會依照在先前版本中的運作方式繼續運作。透過 QlikView 2017 年 11 月或更高版本建立的文件，將會尊重兩種引號類型之間的差異。

## 強制排除

最後，處於 And 模式的欄位也可能會強制排除。若要強制排除特定的欄位值，則需要在欄位名稱前使用 “~”。

範例與結果：

範例結果

| 範例 | 結果 |
| --- | --- |
| `sum( {1<Region= {USA} >} Sales )` | 會傳回 USA 區域的銷售額，忽略目前選項 |
| `sum( {$<Region = >} Sales )` | 會傳回目前選項的銷售額，但移除「Region」選項 |
| sum( {&lt;Region = &gt;} Sales ) | 會傳回與上例相同的結果。當省略要修改的集合時，會採用 $。<br><br>資訊備註注意！前兩個範例中的語法會解譯為在「Region」中「無選項」，亦即有可能是指定其他選項的所有區域。這不等同於語法 &lt;Region = {}&gt; (或隱含會產生空元素集合之等號右側的其他任何文字)，因為會解譯為無地區。 |
| sum( {$&lt;Year = {2000}, Region = {US, SE, DE, UK, FR}&gt;} Sales ) | 會傳回目前選項的銷售額，但包含「Year」和「Region」兩者中的新選項。 |
| sum( {$&lt;~Ingredient = {“\*garlic\*”}&gt;} Sales ) | Ingredient 欄位處於 AND 模式下。<br><br>會傳回目前選項的銷售額，但強制排除包含字串「garlic」的所有食材。 |
| sum( {$&lt;Year = {“2\*”}&gt;} Sales ) | 會傳回目前選項的銷售額，但為在欄位「Year」中選取以數字「2」開頭的所有年份 (亦即很有可能是 2000 年和之後的年份)。 |
| sum( {$&lt;Year = {“2\*”,”198\*”}&gt;} Sales ) | 與上例相同，但現在 1980 年代也包括在選項中。 |
| sum( {$&lt;Year = {“&gt;1978&lt;2004”}&gt;} Sales ) | 傳回目前選項的銷售額，但同時使用數字搜尋，以區分要進行加總的銷售額的年份範圍。 |

資訊備註

若您想要強制排除文字物件等物件中的特定欄位值，必須修改指令碼語法。例如，若您的指令碼陳述式如下：

`=count({<ANDActor=>}DISTINCT Title)`

請修改如下：

`=count({<~ANDActor=, ANDActor=>} DISTINCT Title)`