如何使用集合

在前一课我们学会创建了Top 3 Subcategory By Total Sales. 现在我们需要去学习如何使用这个set.

第一步, 当我把创建好的set移动到右侧的Rows上时, 会出现右侧这样的画面

在Rows上显示的是IN/OUT (Top 3 Subcategories)

此时的Set和我们之前创建的Group非常相似, 一个Group叫In, 一个Group叫Out.

如果我在后边加上Sub-category这Column, 我们就能看到具体是哪个Subcategory是在In里, 哪一个是在Out里.

Set的两种形态

如果我们点击IN/OUT里的那个下拉箭头, 我们会看到另一个选项: 叫做Show Members In Set

点击完之后, 我们会发现Set变换了一个形态, 它不再显示IN/OUT了, 而是直接变成了Subcategory的值

第二个变化就是Top 3 Subcategory出现在了Filters的区域.

那么这里, 我们就看到了两种形态, 第一种叫做IN/OUT形态: 在这种形态下Set内部的值只有IN/OUT 这两种.

第二种形态是Member形态, SET所显示的是所有IN Group里的Member

当变成第一个形态时, 在Set前边会出现一个叫做IN/OUT的标识, 体现它是这种形态, 而如果是Member形态, Set只会显示它自己的名字.

在知道了这两种形态之后, 你就可以用IN/OUT形态来作为Filter来包括或者排除Top 3 Subcategory

用Member形态来只显示Top 3 Subcategory 而不需要再使用Subcategory了


Combined Set

之前我们都专注的是创建一个set, 现在我们创建第二个set. 我们复制之前创建的Top 3 Subcategories 然后把3改成6, 生成第二个set: Top 6 Subcategories.

如果此时点击Top 3 Subcategories, 你将会看到一个选项叫做Create Combined Set.

点击Create Combined Set这个选项就会进入到我们这一部分的核心概念: Combined Set.

Combined Set是指对两个Set内部的Member进行划分, 然后创建一个新的Set.

在下边的这个截图里列出了两个Set之间一共四种可以计算的方式

All Members in both sets: 两个集合当中都有的元素 → 前六名和前三名都包含, 换句话说在两者其中之一就包含

Shared Members in both sets: 两个集合里必须都包含这些成员, 那前三名subcategory在top3 也在top6, 所以top3里的member就会保留下来

接下来的这两个本质上是一种计算, 要么只在集合A里, 要么只在集合B里, 如果我们选择Top 6 Subcategories Except Shared Members 这意味着什么?

Top 6 和 Top 3 shared就是Top 3啊, 我们排除Top 3, 我们就得到了一个只有Top 4 - Top 6的集合.

而Top 4 到 Top 6的集合就解决的是我们的Middle N的问题.

Combined Set是如何解决复杂的Middle N问题的

假设我们现在是一个班级的老师, 我想关注班级里中等成绩的学生考的怎么样. 好学生不用你监督, 坏学生有的你也管不了, 所以中游的学生是提高全班平均分的关键.

你现在想看看班级总分排名从15名到第30名同学的成绩. 这个时候你应该怎么做?

先创建一个前14名学生的set, 再创建一个前30名学生的set, 然后Top 30 Except shared Members (Top 14)) 你就得到了从第15到30名学生的这个集合.

使用这个思路, 你可以解决任何排名从M到N的排序问题. 这就是这个Combined Set的独特意义.

在Tableau当中, 只有Combined Set能够解决Middle N问题, 没有其他解法

在Tableau当中, 只有Combined Set能够解决Middle N问题也就是创建一个集合, 这个集合里包含排名从M到N的所有成员.

一个真实的案例

之前我们的这些案例都是为了分析数据, 但是Middle N问题其实同样可以用在解决的一个格式问题上边.
无论你的Tableau Dashboard多么完善, 在真实世界当中, 总会有用户想要把他们打印出来. 是的, 就是要打印.

在这个时候就涉及到一个打印排版的问题, 在Tableau内部你是可以通过Scroll Up And Down也就是上下滚动的方式看到所有数据, 但是当你把你的报告保存成PDF的时候, 一个现实的问题就是PDF可不允许你滚来滚去. 这个时候, 你唯一的方法就是按照排序, 根据每一页能显示的最多的店铺的数量, 有几页 创建几页

我现在以Sample Superstore数据当中的city为例, 假设我们在这个数据当中的每个城市里都有一家店, 而每家店我们都需要报告它的销售额, 利润, 销售量. 那么在Tableau里这个报告大概长这样:

在Tableau的内部, 我们可以从上向下滚动.

根据左侧的截图我们可以看到, 一页纸依次最多可以显示41家店, 我们家均匀一下是40家店, 在翻到最后我们可以看到, 为了显示所有531家店的业绩, 我们需要531/40 = 13.275 也就是14页纸才能把所有的店铺包括.

那么你的第一个worksheet就是保留从第1名到第40名的店铺

第二个worksheet就是保留第41名到第80名的店铺

第三个worksheet就是第81名到第120名

这样一直到520名

至于第520名之后的, 哪怕有任何新开的店, 会自动添加到最后一页.

这里每一个排名的创建, 都需要你使用Combined Set.

假设我们需要创建一个set来定义任意一页比如第81名到第120名,

我们首先创建一个Set只保留前120名 然后再创建一个set只保留前80名
最后创建一个combined set 选择Top 120 Except Shared Set.