原文转自:https://medium.com/geekculture/show-hide-data-in-rows-columns-grand-total-in-tableau-cb6adad046ef
- 原作者:Priya Yogendra Rana
- 翻译:Joy
数据源:Tableau超市示例数据
你或许在工作中遇到过以下的需求:
让某一计算字段显示在交叉表的行或列中,但不显示在合计中。或者反过来,让一个字段仅显示在合计中,而不显示在交叉表的行/列里。
本文将介绍解决这一问题的3种技巧。
首先,我们根据问题每个客户每个工作日的销售额及利润率画出主视图-交叉表,步骤如下所示。
1、将订单日期拖拽至列,右击并选择“工作日”。
2、将客户姓名拖拽至行。

3、将利润和销售额字段拖拽至文本标记。
4、左侧栏将数据假面切换至分析界面,将”合计“拖至主视图交叉表右侧,形成行合计。

5、右击”合计“,选择”设置格式“。将合计标签的名称改为“sales、profit& profit ratio”

接下来,我们开始处理“利润率”字段,使得该字段仅显示在合计中而不显示在交叉表的其他单元格。
方法一:设置格式
1、创建如下计算字段,命名为”利润率“。将该字段拖至文本标记。你会发现右侧主视图区域的交叉表中,每个单元格都添加了“利润率“的数值。
利润率=sum([profit]/sum([sales])
2、通过格式设置将”利润率“仅限制在合计中显示。
- 在数据区域右击”利润率“字段,选择“默认属性-数字格式-自定义”,输入”@“符号。
- 在聚合的”利润率“(文本标记处)位置右击,选择“设置格式”,而后在“合计-数字”位置下拉勾选“百分比”。这样,就实现了仅在合计位置显示利润率,其他单元格内不显示。

如果你的需求恰恰相反。你希望在行和列中显示字段,但在合计中不显示,则可以反向操作:
- 右击“利润率”字段,选择“默认属性-数字格式-百分比”;
- 右击“聚合(利润率)”字段,勾选“设置格式”,依次找到“合计-数字”,下拉选择“自定义”,输入@符号。
方法2:MIN..MAX函数
1、写一个计算字段,命名为”显示在合计中“,公式如下:

2、将该字段拖入“文本标记”。

由于只有合计列“最大工作日”与“最小工作日”的数值不同,因此,我们可以通过判断最小和最大的订单日期是否一致,保证”利润率“仅显示在合计处。
如果你希望在行列中而非在合计中显示数值,则使用”=”代替公式中的”<>” .
方法3:SIZE 函数
1、将size()字段放置在详细信息标记中,或让这个字段显示在工具提示里。
2、右击size()字段,并且编辑表计算,勾选特定维度“order date 工作日”
3、将鼠标停留在交叉表上。你会发现,当鼠标停留在工作日单元格时,size()的值为7,但是当鼠标停留在合计上时,size()的值为1.我们将这个数值带入计算。
4、新建一个计算字段,命名为“显示利润率”,公式如下:
5、将该字段拖入文本标记。如此一来,size()值为1的时候,也就是在合计单元格中,利润率才会显示出来。如果你希望利润率仅显示在工作日单元格中,那么在上述公式中将=1改为=7即可。
以上3种方法都可以控制数据仅显示在行列或合计中。相对而言,第一种方式更加简单也更易操作,初学者可以尝试第一种方法解决实际问题。