教學課程 - 建立集合運算式
您可以在 Qlik Sense 中建立集合運算式以支援資料分析。在此內容中,分析通常稱為集合分析。集合分析提供了一種定義範圍的方法,該範圍不同於應用程式中目前選取項目所定義的記錄集合。
您將學到什麼
本教學課程提供資料和圖表運算式,以使用集合修飾詞、識別碼和運算子來建立集合運算式。
誰應該完成本教學課程
本教學課程適用於熟悉使用指令碼編輯器和圖表運算式的應用程式開發人員。
開始之前您需要做什麼
如果您有以使用者為基礎的訂閱,則需要 Professional 使用者權利。若要了解您擁有的使用者類型,請聯絡您的租用戶管理員。如需詳細資訊,請參閱 管理使用者權利。
進一步閱讀與資源
-
說明中的 集合分析 主題提供了集合分析的概述、集合運算式元素的詳細描述以及範例。
- 當您想要了解更多資訊時,Qlik 提供了各種資源。
- Qlik Learning 上提供培訓,包括免費的線上課程。
- 討論區、部落格等可以在 Qlik Community 中找到。
影片
以下影片補充了本教學課程。
第一個影片顯示了與本教學課程中描述的類似的基本集合運算式。第二個影片示範了更複雜的集合運算式。
集合運算式中的元素
集合運算式包含在彙總函數中,例如 Sum()、Max()、Min()、Avg() 或 Count()。集合運算式由稱為元素的建置區塊構成。這些元素是集合修飾詞、識別碼和運算子。
集合運算式中的元素

例如,上述集合運算式是從彙總 Sum(Sales) 建置的。集合運算式包含在外部大括號中:{ }
運算式中的第一個運算元是:$<Year={2021}>
此運算元傳回目前選取項目在 2021 年的銷售額。修飾詞 <Year={2021}> 包含年份 2021 的選取項目。$ 集合識別碼表示集合運算式是根據目前的選取項目。
運算式中的第二個運算元是:1<Country={'Sweden'}>
此運算元傳回 Sweden 的 Sales。修飾詞 <Country={'Sweden'}> 包含國家/地區 Sweden 的選取項目。1 集合識別碼表示將忽略在應用程式中進行的選取項目。
最後,+ 集合運算子表示運算式傳回一個集合,該集合由屬於兩個集合運算元中任何一個的記錄組成。
如需詳細資訊,請參閱:
建立集合運算式教學課程
完成下列程序以建立本教學課程中顯示的集合運算式。
建立新的應用程式並載入資料
請執行下列動作:
- 建立新的應用程式。
- 按一下 指令碼編輯器。或者,開啟應用程式導覽功能表並選取 資料載入編輯器。
- 在 資料載入編輯器 中建立新的區段。
- 複製下列資料並將其貼到新的區段中:集合運算式教學課程資料
-
按一下 載入資料。資料將作為內嵌載入進行載入。
如需有關使用內嵌載入的詳細資訊,請參閱 使用內嵌載入以載入資料。
建立具有修飾詞的集合運算式
集合修飾詞由一個或多個欄位名稱組成,每個名稱後面跟著應該在該欄位上進行的選取項目。修飾詞由角括號括住。例如,在此集合運算式中:
Sum ( {<Year = {2015}>} Sales )
修飾詞為:
<Year = {2015}>
此修飾詞指定將選取 2015 年的資料。括住修飾詞的大括號表示集合運算式。
請執行下列動作:
-
在工作表中,從導覽列開啟 資產 面板,然後按一下 圖表。

-
在 視覺化 下,將 KPI 拖曳到工作表上,然後按一下 新增量值。

-
按一下 Sales,然後選取 Sum(Sales) 作為彙總。

KPI 顯示所有年份的銷售總額。

-
複製並貼上 KPI 以建立新的 KPI。
-
按一下新的 KPI,按一下 量值 下的 Sales,然後按一下 開啟運算式編輯器。

運算式編輯器開啟並顯示彙總 Sum(Sales)。

-
在運算式編輯器中,建立一個運算式以僅加總 2015 年的 Sales:
- 新增大括號以表示集合運算式:Sum({}Sales)
-
新增角括號以表示集合修飾詞:Sum({<>}Sales)
-
在角括號中,新增要選取的欄位,在此情況下欄位為 Year,後面跟著等號。接下來,將 2015 括在另一組大括號中。產生的集合修飾詞為:{<Year={2015}>}。
整個運算式為:
Sum({<Year={2015}>}Sales)
-
按一下 套用 以儲存運算式並關閉運算式編輯器。2015 年的 Sales 總和顯示在 KPI 中。

-
使用下列運算式再建立兩個 KPI:
Sum({<Year={2015,2016}>}Sales)上述的修飾詞為 <Year={2015,2016}>。運算式將傳回 2015 年和 2016 年的 Sales 總和。
Sum({<Year={2015},Country={'Germany'}>} Sales)上述的修飾詞為 <Year={2015}, Country={'Germany'}>。運算式將傳回 2015 年的 Sales 總和,其中 2015 年與 Germany 交集。
使用集合修飾詞的 KPI

新增集合識別碼
上述集合運算式將使用目前的選取項目作為基礎,因為沒有使用識別碼。接下來,新增識別碼以指定進行選取時的行為。
請執行下列動作:
在您的工作表上,建置或複製下列集合運算式:
Sum({$<Year={"2015"}>}Sales)$ 識別碼將使集合運算式以資料中目前的選取項目為基礎。這也是未使用識別碼時的預設行為。
Sum({1<Year={"2015"}>}Sales)1 識別碼將導致 2015 年的 Sum(Sales) 彙總忽略目前的選取項目。當使用者進行其他選取時,彙總的值不會改變。例如,當在下方選取 Germany 時,2015 年的彙總總和值不會改變。
使用集合修飾詞和識別碼的 KPI

新增運算子
集合運算子用於包含、排除或交集資料集。所有運算子都使用集合做為運算元,並傳回一個集合做為結果。
您可以在兩種不同的情況下使用集合運算子:
-
對集合識別碼執行集合運算,代表資料中的記錄集合。
-
對元素集合、欄位值或在集合修飾詞內部執行集合運算。
請執行下列動作:
在您的工作表上,建置或複製下列集合運算式:
Sum({$<Year={2015}>+1<Country={'Germany'}>}Sales)加號 (+) 運算子會產生 2015 和 Germany 資料集的聯集。如上述集合識別碼所解釋,錢幣符號 ($) 識別碼表示將對第一個運算元使用目前的選取項目,即 <Year={2015}> 將被遵守。1 識別碼表示第二個運算元 <Country={'Germany'}> 將忽略選取項目。
使用加號 (+) 運算子的 KPI

或者,使用減號 (-) 傳回一個資料集,該資料集由屬於 2015 年但不屬於 Germany 的記錄組成。或者,使用星號 (*) 傳回由屬於這兩個集合的記錄組成的集合。
Sum({$<Year={2015}>-1<Country={'Germany'}>}Sales)
Sum({$<Year={2015}>*1<Country={'Germany'}>}Sales)使用運算子的 KPI
