在Tableau中,"集"(Set)是一种用于创建自定义子集或筛选数据的特定数据类型。Sets 可以用于与数据源中的维度字段交互,允许用户根据特定条件或规则选择和分析数据的子集。
在Tableau中可以通过右键单击一个维度,选择创建这个维度的集。被选中或者符合条件的值被加入到集中(内/TRUE),未被选中或者不符合条件的值被排除在集外(外/FALSE)。
在对集进行操作的时候,要分清两个重要概念,“显示集”和“显示筛选器”。通过右键点击某个“集”字段,就可以看到这两个选项。从下图,我们可以看到集本身只有内、外(TRUE、FALSE)两个值,可以作为维度字段使用,也可以用作筛选器。通过显示集,我们就可以对集内的值进行添加和删除操作,从而改变集的结果。
集作为一个维度字段,我们可以对集进行计数操作{COUNTD([Region Set])},使用LOD表达式直接计算集的计数,这个结果只有两个1或者2。
如下图所示,如果集没有值或者集中的值全部被添加进集,集值只有单一结果(内或外),所以计数结果就是1,如果集中只有部分值,那么集值有内和外,所以计数结果是2。
这里有一个常见的交互场景,判断集是否被选中,或者说集中是否有值。这个场景一般配合集动作使用,如下图,在添加集动作时,限制单选,选中后的值被分配到集内,清除选定内容后,将所有值添加到集或者从集中移除所有值。
所以,根据通过上面的计算,我们就可以判断集是否被选中,如果计数结果是2就说明被选中,如果计数结果为1就是没选中,因为这里不存在全选的情况。
这种计算只能判断集中是否有值,但是并不能计算集被选中了几个值。如果要计算被选中了几个值,直接计算是不可以的,只能先找出哪些值被选中了,再计算选中了几个。
比如说,我要计算有几个地区被选中了,那么先找出被选中的地区
- 选中的地区:IF [Region Set] THEN [Region] END
然后,再对这个字段进行计数
- 选中地区计数:{FIXED: COUNTD([选中的地区])}
这种计算一般被使用在对选择集值的多少要进行限制的场景,比如选择集值个数小于某个阈值时候,进行一种计算,超过时候进行另一种计算。