关于操作顺序(也称为查询管道)
有时,您可能预计 Tableau 会按一个顺序执行筛选器,但操作的顺序决定的筛选器按不同的顺序执行,则结果可能会出人意料。如果发生这种情况,您有时可以更改操作在管道中执行的顺序。如图:
1.将维度筛选器转换为上下文筛选器
例如:问题:本示例以及以下示例使用 Tableau Desktop 附带的“Sample – Superstore”数据源。视图解决以下问题:按总销售额计,纽约市位居前 10 名的客户有哪些?
——视图包含两个维度筛选器,一个您在“筛选器”对话框的“常规”选项卡上创建的筛选器,以及另一个在“前 N 个”选项卡上创建的筛选器。问题在于,这些筛选器是同时执行的,而您希望常规筛选器在“前 N 个”筛选器之前应用,以便“前 N 个”筛选器可对常规筛选器预先筛选的结果进行操作。解决方案是将其中一个关于城市常规维度筛选器重新定义为上下文筛选器,以便建立清晰的优先级顺序。该筛选器将先于在工作表中创建的任何其他筛选器执行。
2.将表计算转换为 FIXED 详细级别表达式
例如:问题:占总销售额的百分比将如何按产品子类列出?(您可能希望百分比即使在您筛选进或筛选出某些项目时也保持稳定。而不是在使用快速筛选器时对百分比进行重新计算)
——视图包含一个维度筛选器和一个表计算。Tableau 会在执行表计算之前应用维度筛选器。若要反转这些操作的顺序,请使用 FIXED 详细级别表达式来取代表计算。如图:
若要让 Tableau 在运用快速筛选器之前计算百分比,您可以创建一个 FIXED 详细级别表达式,然后使用该表达式来取代表计算。FIXED 详细级别表达式使用指定的维度计算值,而不引用视图中的维度。在本例中,您将使用它来建立各个子类的百分比 — 不会受常规维度筛选器影响的百分比。为何会这样?原因是,FIXED 详细级别表达式是在应用维度筛选器之前计算的。
FIXED 详细级别表达式必须将(特定度量值的)“Sales”(销售额)的和除以视图的“Sales”(销售额)的总和。由于分子是聚合的,因此分母也必须为聚合,所以您编写的表达式为:
SUM([Sales])/SUM({FIXED : SUM([Sales])})