教程 - 创建集合表达式
您可以在 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
