我们分享过 🌰 :突出显示文本表的行或列,可以突出显示文本表中的某一行或某一列。有数据粉提出新的问题:如果想突出显示多行数据,该如何实现呢?
在 Tableau 中是可以实现的(如上图),一起学习今天的栗子吧~
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:按需突出显示文本表的 N 个行。
为方便学习,栗子使用 Tableau 自带的“示例-超市”数据源,掌握栗子方法后,数据粉可尝试使用其他数据源实现。懒癌患者可通过以下链接获取栗子数据源:
具体步骤如下:
1
准备和连接数据源
首先,打开 Tableau 自带的“示例-超市”数据源,在字段名称行下面插入一行,设置“行ID”为:0,代表“虚拟行”。
打开 Tableau Desktop,连接该数据源。在数据连接界面,单击右上角的筛选器“添加”按钮,弹窗中选择:添加。
在“添加筛选器”对话框中选择:行 Id,然后在“筛选器”对话框中,勾选:0-20。
2
创建集和计算字段
新建工作表,右键单击“数据”窗格中的字段“行ID”,下拉菜单选择:创建-集。
在弹出的对话框中,随机勾选几个行 ID 值,例如:1,6,9。
接着,创建计算字段:色带集,用于将行分组在一起,在不突出显示和突出显示之间交替。键入函数
if min([行 Id]) = 0 and min([行 Id 集]) = TRUE then 0
elseif zn(lookup(avg(int([行 Id 集])),first())) = 1 then 1
elseif min([行 Id])=0 then min([行 Id])
elseif zn(lookup(avg(int([行 Id 集])),-1)) = 0 and zn(lookup(avg(int([行 Id 集])),0)) = 1 then min([行 Id])
elseif zn(lookup(avg(int([行 Id 集])),-1)) = 1 and zn(lookup(avg(int([行 Id 集])),0)) = 0 then min([行 Id])
else PREVIOUS_VALUE(1)
end
☝ 这里简单说明一下计算原理:
- 如果是虚拟行,那就将其设置为 0(第一组 ID);
- 如果前一行不在集合中而当前行在集合中,则递增到下一个数字(启动高亮显示行的计数器);
- 如果前一行在集合中而当前行不在集合中,则递增到下一个数字(开始非高亮显示行的计数器);
- 如果这些都不是真的,那么使用上一行的值。
3
创建工作表
右键单击刚刚创建的计算字段“色带集”,下拉菜单选择:转换为离散。然后,将其拖放至行,并右键单击该胶囊,下拉菜单去掉勾选:显示标题。
再将“行ID”、“类别”、“产品名称”依次拖放至行。将“销售额”拖放至“标记”卡的文本中。
右键单击行上的“色带集”胶囊,下拉菜单选择:计算依据-表(向下)。
单击顶部菜单栏的“设置格式”,下拉菜单选择:阴影。然后将“行分级”中的“区”和“标题”都改为:黄色。将“行带级别”的滑块挪到最左侧。
右键单击文本表第二行第一列的“0”,下拉菜单选择:编辑别名,弹窗中键入“ALL”并回车。再分别右键第二行第二列和第二行第三列的“null”,均键入空格并回车。
右键单击“数据”窗格的“度量值”,下拉菜单选择:添加到工作表。右键单击“数据”窗格的字段“行 Id 集",下拉菜单选择:显示集,便于更改设置值。
4
添加集动作
单击顶部菜单栏“工作表”,下拉菜单选择:操作。弹窗中选择:添加动作-更改集值。
如下图添加集动作:
请添加图片描述
如此,就完成了我们想要的可视化呈现:单击想要突出显示的行,对应的行就会被高亮;单击两次“ALL”便可清除所选择的高亮。
本期的 Tableau 技巧,你 Get 到了吗?
下一期,再见
文章部分信息来源于网络,如有侵权请告知!