使用集合函數 的集合修飾詞
有時候您需要使用巢狀集合定義來定義欄位值集合。例如,您可能希望選取已購買特定產品的所有客戶,而不選取該產品。
在這類情況下,使用元素集函數 P() 和 E()。這會分別傳回欄位可能值和排除值的元素集。在括弧內,可以在問題中指定欄位,以及定義範圍的集合運算式。例如︰
P({1<Year = {2021}>} Customer)
這將會傳回在 2021 年曾有交易的客戶集合。然後您可以在集合修飾詞中使用此。例如︰
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
此集合運算式將會選取這些客戶,但不會將選項限制為 2021。
這些函數無法用於其他運算式。
此外,在元素集函數內部只能使用自然集合。即可由單一選項定義的一組記錄。
例如,{1-$} 指定的集合無法一直透過選取來定義,因此不是自然集合。將這些函數用於非自然集合會傳回非預期的結果。
範例:使用集合函數的集合修飾詞的圖表運算式
載入指令碼
在資料載入編輯器中載入下列資料作為內嵌載入,以建立以下的圖表運算式範例。
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];
如需更多關於使用內嵌載入的資訊,請參閱 內嵌載入。
圖表運算式
透過下列圖表運算式在 Qlik Sense 工作表中建立表格。
國家/地區 | Sum(Amount) | Sum({<Country=P({<Year={2019}>}Country)>} Amount) | Sum({<Product=P({<Year={2019}>}Product)>} Amount) | Sum({<Country=E({<Product={Washer}>}Country)>} Amount) |
---|---|---|---|---|
總計 | 41 | 10 | 17 | 13 |
加拿大 | 14 | 0 | 6 | 0 |
捷克 | 10 | 10 | 10 | 0 |
法國 | 4 | 0 | 1 | 0 |
德國 | 13 | 0 | 0 | 13 |
解釋
-
維度:
-
Country
-
-
量值:
-
Sum(Amount)
不含集合運算式的 Amount 總和。
-
Sum({<Country=P({<Year={2019}>} Country)>} Amount)
與年份 2019 相關國家的總和 Amount。不過,這不會將計算限制為 2019。
-
Sum({<Product=P({<Year={2019}>} Product)>} Amount)
與年份 2019 相關產品的總和 Amount。不過,這不會將計算限制為 2019。
-
Sum({<Country=E({<Product={Washer}>} Country)>} Amount)
與產品 Washer 相關國家的總和 Amount。
-
使用集合函數的集合修飾詞

如需關於運算式的詳細資訊,請參閱在視覺化中使用運算式。