Tableau 的操作顺序
Tableau 中的操作顺序(有时称为查询管道)是指 Tableau 将执行各种动作的顺序。动作也称为操作。许多操作都应用筛选器,这意味着,在您构建视图和添加筛选器时,这些筛选器始终按操作顺序所建立的顺序执行。
观看视频:若要查看 Tableau 中演示的相关概念,请观看时长 1 小时的了解 Tableau 的操作顺序(链接在新窗口中打开)免费演示文稿。
本文包括两个用于更新视图来纠正操作顺序所产生问题的方案:将维度筛选器转换为上下文筛选器,以及将表计算转换为 FIXED 详细级别表达式。
关于操作顺序(也称为查询管道)
有时,您可能预计 Tableau 会按一个顺序执行筛选器,但操作的顺序决定的筛选器按不同的顺序执行,则结果可能会出人意料。如果发生这种情况,您有时可以更改操作在管道中执行的顺序。
Tableau 的操作顺序从上到下包括以下各项。
注意:在操作顺序中,最新日期筛选器将全局应用于工作簿,而上下文筛选器则按工作簿应用。最新日期在工作簿打开第一次使用、应用数据源筛选器之后但在应用上下文筛选器之前确定。此时日期已设置,并且使用最新日期预设作为维度筛选器。
示例 1:将维度筛选器转换为上下文筛选器
本示例以及以下示例使用 Tableau Desktop 附带的“Sample – Superstore”数据源。
在此示例中,视图解决以下问题:按总销售额计,纽约市位居前 10 名的客户有哪些?
视图包含两个维度筛选器,一个您在“筛选器”对话框的“常规”选项卡上创建的筛选器,以及另一个在“前 N 个”选项卡上创建的筛选器。问题在于,这些筛选器是同时执行的,而您希望常规筛选器在“前 N 个”筛选器之前应用,以便“前 N 个”筛选器可对常规筛选器预先筛选的结果进行操作。解决方案是将其中一个筛选器重新定义为上下文筛选器,以便建立清晰的优先级顺序。
下面是用于构建此视图的步骤。
将“Sales”(销售额)拖到“列”。
将“City”(城市)和“[Customer Name]”([客户名称])拖到“行”。
再次从“数据”窗格中拖出“City”(城市),这次将其拖到“筛选器”。在“筛选器”对话框的“常规”选项卡上,将筛选器设置为仅显示单一值:“New York City”(纽约市)。通过单击“无”然后选择“New York City”(纽约市)可达到此目的。
这将创建一个常规维度筛选器。
单击工具栏上的“降序排序”按钮 ()。视图现在将如下所示:
注意列表中的前几个名称:Ashbrook、Fuller、Vernon 等。
现在将“[Customer Name]”([客户名称])从“数据”窗格拖到“筛选器”,并创建一个“前 10 个”筛选器,以仅显示按总销售额计的前 10 名客户。
应用了这第二个筛选器后,视图看起来是正确的,但您会注意到显示的名称与之前不再相同:
之前位于第二位的 Peter Fuller 发生了什么情况?目标是显示纽约市的前 10 名客户,但现在视图实际显示的是总体的前 10 名客户。
问题在于“前 N 个”筛选器和常规维度筛选器是同时应用的 — 它们都是维度筛选器,并且按 Tableau 操作顺序出现在同一位置:
解决方案是向上下文中添加(针对“City”(城市)的)常规维度筛选器 — 也就是说,将其转换为一个上下文筛选器,该筛选器将先于在工作表中创建的任何其他筛选器执行。
有关详细信息,请参见使用上下文筛选器。
在“筛选器”功能区上右键单击(在 Mac 上按住 Control 单击)“City”(城市),并选择“添加到上下文”。作为上下文筛选器,此筛选器现在优先于维度筛选器,因此视图现在将按预期方式显示:
示例 2:将表计算转换为 FIXED 详细级别表达式
在此示例中,视图解决以下问题:占总销售额的百分比将如何按产品子类列出?
视图包含一个维度筛选器和一个表计算。Tableau 会在执行表计算之前应用维度筛选器。若要反转这些操作的顺序,请使用 FIXED 详细级别表达式来取代表计算。
下面是用于构建此视图的步骤。
在新工作表中,将“Sales”(销售额)拖到“列”。
将“Sub-Category”(子类)拖到“行”。
在“列”上右键单击“SUM(Sales)”并选择快速表计算 –“总额百分比”。
单击工具栏上的“降序排序”按钮 (),按从最多到最少的顺序对类别进行排序。
单击工具栏上的“显示标记标签”按钮 (),以在视图中显示度量值。
视图现在将如下所示:
注意前几项的百分比:14.37%、14.30% 等。
在“行”上右键单击“Sub-Category”(子类),并选择“显示筛选器”。
清除筛选器中“Chairs”(椅子)的复选标记。
视图中的百分比现在有所不同 — 最高的百分比现在超过了 16%。在某些情况下,这可能就是您需要的结果(也就是说,在使用快速筛选器时对百分比进行重新计算)。但在其他情况下,您可能希望百分比即使在您筛选进或筛选出某些项目时也保持稳定。这是我们在本例中所需要的。
在操作顺序中,维度筛选器是在表计算之前应用的。
若要让 Tableau 在运用快速筛选器之前计算百分比,您可以创建一个 FIXED 详细级别表达式,然后使用该表达式来取代表计算。
FIXED 详细级别表达式使用指定的维度计算值,而不引用视图中的维度。在本例中,您将使用它来建立各个子类的百分比 — 不会受常规维度筛选器影响的百分比。为何会这样?原因是,FIXED 详细级别表达式是在应用维度筛选器之前计算的。
有关详细信息,请参见在 Tableau 中创建详细级别表达式。
FIXED 详细级别表达式必须将(特定度量值的)“Sales”(销售额)的和除以视图的“Sales”(销售额)的总和。由于分子是聚合的,因此分母也必须为聚合,所以您编写的表达式为:
SUM([Sales])/SUM({FIXED : SUM([Sales])})
将该表达式另存为 FixedSumOfSales,然后将其从“数据”窗格拖到“列”,放在使用表计算的现有“SUM(Sales)”字段的右侧。(将两者都保留在视图中以便于比较。)您的视图现在将如下所示:
不管您使用快速筛选器选择或者不选择哪些字段,右侧图表中的百分比现在都保持一致。现在只需设置“FixedSumOfSales”值的格式,以使其显示为百分比。
在“列”中右键单击“FixedSumOfSales”,并选择“设置格式”。在“设置格式”窗格中,选择“数字”,然后选择“百分比”:
这样就得到了最终视图:
当您在“Sub-Category”(子类)快速筛选器中选择或清除项目时,左侧条形图中的百分比将发生变化,而右侧条形图中的百分比则不会。