Loading

筛选后包含 FIXED 表达式的计算返回意外结果

发布日期: Sep 24, 2025
描述
筛选包括 FIXED 详细级别表达式的视图时,可能会遇到意外结果。

在情形 1 中,筛选器未筛选 FIXED 计算的输出。

在情形 2 中,FIXED 计算的输出受到了 FIXED 之后的维度声明中未指定的维度筛选器的影响。

Cause

有关情形 1 的注意事项
FIXED 表达式仅基于 FIXED 之后列出的维度运算表达式。选项 1 和 3 利用运算顺序来运算视图:
  1. 添加到上下文的筛选器
  2. FIXED LOD 计算
  3. 常规维度筛选器
  4. INCLUDE/EXCLUDE LOD 计算
  5. 度量筛选器、表计算筛选器和其余计算
因此,如果将维度筛选器添加到上下文,则它将限制 LOD 用于计算结果的数据(选项 1)。或者,如果将 FIXED 计算修改为改用 INCLUDE 或 EXCLUDE,则会在常规维度筛选器限制数据之后对计算进行运算(选项 3)。有关更完整的说明,请参见 Tableau 的运算顺序

选项 2 是 LOD 计算的基本设计的一部分。将针对维度声明中 FIXED 之后列出的维度(或维度的组合)的每个唯一值对 : 之后的表达式进行单独运算。这意味着,如果“筛选器”功能区上的维度 [A] 在计算中列在 FIXED 之后,并且已筛选出 [A] 的某个特定值,则也会筛选出 [A] 的该值的对应输出。


有关情形 2 的注意事项
FIXED 表达式不会显式忽略筛选器。实际发生的情况是,FIXED 表达式会在基础数据库中的许多记录上返回相同的输出值。如果未筛选出其中至少一个包含重复输出值的记录,则 FIXED 表达式仍将返回整个未筛选的输出值。并且相反,如果已筛选出包含该输出值的所有记录,则 Tableau Desktop 将没有任何值显示在视图中。

举例来说,如果“Washington”(华盛顿)州仅在“Furniture”(家具)类别中有销售额,并且已从视图中筛选出“Furniture”(家具),则计算 { FIXED [State] : SUM([Sales]) } 将不会为“Washington”(华盛顿)返回任何销售额值。
解决方案

情形 1:FIXED 计算应被筛选,但却未被筛选

本文右侧窗格中附带的工作簿使用示例数据集“Superstore”来演示以下 3 个选项。

选项 1

通过在“筛选器”功能区上右键单击字段并选择“添加到上下文”来将维度筛选器添加到上下文。

注意: 此选项将不会筛选另一个上下文筛选器内部的 LOD 函数。

选项 2

将经过筛选的字段添加到 FIXED LOD 计算的维度声明。例如,计算 { FIXED [Category] : SUM([Sales]) } 将按“[Category]”(类别)筛选,但不按“[Region]”(区域)进行筛选。

计算 { FIXED [Category], [Region] : SUM([Sales]) } 将同时按“[Category]”(类别)和“[Region]”(区域)进行筛选。

请注意,向 FIXED LOD 中添加字段将影响运算级别,因此可能会改变计算的结果。附带的工作簿中进一步解释了这一点。

选项 3

如果使用维度筛选器,请修改 LOD 以使用 INCLUDEEXCLUDE,而不是 FIXED。这可能会改变 LOD 计算的结果,具体情况取决于视图的结构。

注意:度量筛选器或表计算筛选器将不会筛选 EXCLUDE 和 INCLUDE。
 

情形 2:FIXED 计算应该不被筛选,但已被筛选

使用将 NULL 或缺少的数据替换为零或现有数据中的选项 2、3 或 4

其他资源

知识文章编号

001473037

附件

FIXED should be filtered_v2018.twbx

443 KB

 
正在加载
Salesforce Help | Article