举个栗子!Tableau 技巧(213):筛选结果保持数据整体排名

published: 2022-09-16

有数据粉咨询:对有整体排序的文本表进行筛选,发现筛选后的数据排序发生了改变,应该是按筛选后的数据重新排序了。有办法保持之前的整体排序么?

如下示例,整体排名中,子类别“器具”位居第二(见图一),但是单独筛选“器具”后,它的排名变成了第一(见图二)。

的确,在实际业务分析场景中,会经常遇到类似需求。需要解决的问题是:如何在筛选后,让每个子类别仍保持其整体排名呢?

其实方法并不复杂,今天分享给大家,一睹为快吧!

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:筛选结果保持数据整体排名。

为方便学习,栗子使用 Tableau 自带的“示例-超市”数据源。掌握栗子方法后,数据粉可尝试使用自己的数据。

具体步骤如下:

Step 1 创建视图

打开 Tableau Desktop,连接“示例-超市”数据源,新建工作表。

将度量“销售额”拖放至行;右键单击该胶囊,下拉菜单选择:离散;再右键单击该胶囊,下拉菜单选择:快速表计算-排序。

然后,将维度“子类别”拖放至行,再将度量“销售额”拖放至“标记”卡的文本中。

将“子类别”拖放至“筛选器”卡,右键单击该胶囊,下拉菜单选择:显示筛选器。

此时,如果筛选子类别,筛选结果的排名就会变化。

Step 2 创建计算字段

如何保持整体排名呢?只需要创建一个计算字段。单击“数据”窗格右上角 ▼ 符号,在下拉菜单中选择:创建计算字段。

➤ 创建计算字段:保留排名,键入函数

LOOKUP(MAX(子类别),0)

然后,移除“筛选器”卡中的“子类别”胶囊。

将计算字段“保留排名”拖放至“筛选器”卡,在弹窗中选择:全部。

接着,右键单击该胶囊,下拉菜单中选择:显示筛选器。

如此,就实现了想要的效果:不论如何筛选,图表中的数据排序,都会保持其整体排序不变。

栗子 Tips :原理说明

在 Tableau 的执行顺序中,维度过滤器排在表计算的前面。因此,当子类别作为筛选器进行筛选,Tableau 就会先从视图中删除数据,再对剩下的数据进行重新排名。

如果想要先排名后筛选,则需要把筛选器变成表计算的过滤器,实现方法就是栗子中创建的计算字段“保留排名”。

图片

今天的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!