教學課程 - 建立集合運算式
您可以在 Qlik Sense 中建置集合運算式以支援資料分析。在此脈絡中,分析通常稱為集合分析。集合分析提供定義範圍的方法,與由應用程式中的目前選項定義的記錄集合不同。
您將會學習的內容
本教學課程提供資料和圖表運算式,以建置使用集合修飾詞、識別碼和運算子的集合運算式。
誰應完成本教學課程
本教學課程適合可順利使用指令碼編輯器和圖表運算式的應用程式開發人員。
開始前需要進行的事項
您需要具有 專業或 Full User 權限 的使用者。
進一步讀取和資源
-
說明中的 集合分析 主題提供集合分析的概述、集合運算式元素的詳細說明,以及範例。
- 當您想要進一步瞭解時,Qlik 會提供各種資源。
- 在 Qlik Continuous Classroom 提供培訓,包括免費線上課程。
- 可在 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,按一下量值之下的銷售,然後按一下開啟運算式編輯器。
運算式編輯器會以彙總 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 有交集。
新增集合識別碼
以上的集合運算式將會使用目前選項作為基礎,因為未使用識別碼。接下來,新增識別碼以在進行選取時指定行為。
請執行下列動作:
在工作表上,建置或複製下列集合運算式:
Sum({$<Year={"2015"}>}Sales)
$ 識別碼將會讓集合運算式立基於資料中選取的目前選項。這也是不使用識別碼時的預設行為。
Sum({1<Year={"2015"}>}Sales)
1 識別碼將會導致 2015 年的 Sum(Sales) 彙總,以忽略目前選項。使用者進行其他選取時,彙總值將不會變更。例如,若在以下選取 Germany,2015 年的彙總總和值不會變更。
新增運算子
集合運算子用來納入、排除或交集資料集。所有運算子都將集合作為運算元使用,並傳回一個集合作為結果。
您可以在兩種不同的情況下使用集合運算子:
-
在集合識別碼執行集合操作,表示資料中的記錄集合。
-
在元素集、欄位值或集合修飾詞內部執行集合操作。
請執行下列動作:
在工作表上,建置或複製下列集合運算式:
Sum({$<Year={2015}>+1<Country={'Germany'}>}Sales)
加號 (+) 運算子會為 2015 和 Germany 產生資料集的聯集。如以上集合識別碼的說明,貨幣符號 ($) 識別碼代表將會採用第一個運算元 <Year={2015}> 使用的目前選項。1 識別碼代表將會忽略第二個運算元 <Country={'Germany'}> 的選項。
或者,使用減號 (-) 以傳回資料集,該資料集包括屬於 2015、但不屬於 Germany 的記錄。或者,使用星號 (*) 傳回包括屬於兩個集合之記錄的集合。
Sum({$<Year={2015}>-1<Country={'Germany'}>}Sales)
Sum({$<Year={2015}>*1<Country={'Germany'}>}Sales)