举个栗子!Tableau 技巧(145):实现行级的子类别扩展

published: 2022-09-16

前不久,一位在学习第 132 号栗子 用参数操作实现数据下钻 的用户,提出了他的问题:能否在下钻子类别的时候,保留母类别那一行,让子类别的数据呈现下面?

那么,我们先来看看参数下钻栗子的效果(如下图)。的确,当下钻子类别的时候,大类那一行的数据图表是不显示的。

这位用户的需求,是希望实现行级的子类别扩展(如下图)。从直观性来说,图表确实会更一目了然。

如何实现这样的呈现呢?要费一些功夫哦。我们今天来分享方法,一睹为快吧!

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:实现行级的子类别扩展。

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

具体步骤如下:

Step 1

打开 Tableau Desktop,连接数据源。

首先,需要两份一样的数据源并做标识(参考下图)。

然后做一个关联表,用左联接 market 和 market1 区分。

Step 2

创建一个类别的空集:在“数据”窗格中,右键单击维度“类别”,在下拉菜单中选择“创建”-“集”。在弹出的对话框(如下图)中,全部不勾选。

Step 3


接着,创建三个计算字段,用来对类别进行扩展。

右键单击“数据”窗格空白处,在下拉菜单中选择“创建”-“计算字段”。分别创建计算字段:

► 是否展开类别

// 展现某个大类时,显示它的小类

if [表] = 'market1' and [选择类别]

then '子类别'

// 显示所有大类

elseif [选择类别]

then '展开'

else

'不展开'

end

► 类别拓展

case [是否展开类别]

when '展开' then '▼ ' + [类别]

when '不展开' then '▶ ' + [类别]

else ' ' + [子类别]

end

因为同时连接了两份数据源,所以还要根据自己的需求创建度量的计算字段。如果不做判断,数据就会翻倍。这里,我们对销售额创建一个计算字段:Sales(adj)。

► Sales(adj)

//判断是否展开时的值

if [是否展开类别] = '不展开'

then iif([表] = 'market1', [销售额], 0)

else [销售额]

end

Step 4

然后,就要创建图表了。

将维度“类别”、计算字段“是否展开类别”和“类别拓展”依次拖放至列,将维度“订单日期”拖放至行,将计算字段“Sales(adj)”拖放至“标记”卡的文本中。

此时,工作表视图中呈现出一个二维图表(如下图)。


Step 5


最后,新建仪表板,将刚刚创建的工作表拖入仪表板中。

单击顶部菜单栏“仪表板”,选择“操作”,在弹出的对话框中单击“添加操作”,并在下一个对话框中,设置集动作(如下图)。

完成设置后,打开仪表板预览模式,就可以点击查看我们想要的子类别扩展了。

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