上次修改日期: 20 Jul 2023
环境
Tableau Desktop答案
选项 1:使用详细级别 (LOD) 表达式 FIXED。
附带的示例工作簿使用示例数据集“Superstore”来演示以下指引:
- 将“[Region]”(区域)拖到“行”功能区上。
- 将“[Sales]”(销售额)拖到标记卡上的“文本”。
- 将“[Category]”(类别)拖到“筛选器”功能区上。
- 在“编辑筛选器”对话框中,检查所有类别并单击“确定”。
- 在“筛选器”功能区上右键单击“[Category]”类别,并选择“显示筛选器”。
- 选择“分析”>“创建计算字段”。
- 在打开的“计算字段”对话框中,执行以下操作,然后单击“确定”:
- 命名此计算字段。在本例中,计算字段名为“Unfiltered Sales”(未筛选的销售额)
- 在公式字段中,创建一个类似于如下的计算:
{ FIXED [Region] : SUM( [Sales] ) }
- 在“数据”窗格中双击“[Unfiltered Sales]”(未筛选的销售额),将该字段添加到交叉表。
选项 2:使用参数来筛选视图中所有其他字段。
- 将“[Region]”(区域)拖到“行”功能区上。
- 将“[Sales]”(销售额)拖到“标记”卡上的“文本”。
- 在“数据”窗格中,右键单击“[Category]”(类别)字段,并选择“创建”>“参数…”
- 在“创建参数”对话框中,执行以下操作,并单击“确定”。
- 在“名称”文本框中,键入一个名称。在此示例中,我将该参数称为“Category Parameter”(类别参数)。
- 将值“All”(全部)添加到列表。
- 右键单击“数据”窗格中的“[Category Parameter]”(类别参数),并选择“显示参数控件”。
- 选择“分析”>“创建计算字段”。
- 在打开的“计算字段”对话框中,执行以下操作,然后单击“确定”:
- 命名此计算字段。在此示例中,计算字段名为“Sales Filtered by Category”(按类别筛选的销售额)。
- 在公式字段中,创建一个类似于如下的计算:
IF [Category] = [Category Parameter]
OR [Category Parameter] = "All"
THEN [Sales]
END
- 在“数据”窗格中双击“[Sales Filtered by Category]”(按类别筛选的销售额),将该字段添加到交叉表。
其他信息
FIXED 表达式将忽略除维度声明中包括的维度之外的所有其他维度。因此,解决方案应包括视图中的所有维度,而不包括要忽略的筛选器维度。在本例中,“[Region]”(区域)是视图中的唯一维度。如果向视图中添加了更多维度,则还应将这些维度添加到 FIXED 表达式。请注意,如果向筛选器功能区中添加了其他维度,选项 1 可能会返回低于预期的值或不返回值。
举例来说,如果计算更改为 { FIXED [Region], [State] : SUM([Sales]) },并且“Washington”(华盛顿)州仅在“Furniture”(家具)类别中有销售额,那么,如果“Furniture”(家具)被筛选出视图,“Washington”(华盛顿)也会被筛选出视图。这意味着“West”(西部)区域的销售额将降低。
之所以会发生这种情况,原因是 FIXED 表达式不会显式忽略筛选器。实际发生的情况是,FIXED 表达式会在基础数据库中的许多记录上返回相同的值。如果其中一些记录包含被筛选出的重复值,则 FIXED 表达式仍将返回未筛选的值。
感谢您提供该文章是否有效的反馈。
打开新案例
继续搜索
知识库
社区
产品帮助
培训和教程