上次修改日期: 20 Jul 2023
环境
Tableau Desktop答案
目前,默认排序选项不支持使用表计算的字段。通常,将表计算的副本作为离散字段导入行功能区的第一个位置并隐藏,可按表计算对视图进行排序。表计算支持大量自定义,因此所需解决方案因原始视图而异。 以下说明使用 Superstore 示例数据集讲解3 个示例,复杂性不断增加。“Sorting by Table Calc_v2022.1.twbx”工作簿会显示这些说明,本文章的右侧窗格提供下载。
示例 1:按总销售额的百分比,对子类别进行排序
这些说明将从“示例 1:按占总销售的百分比排序”视图开始。附加的工作簿提供了创建“示例 1:按占总销售的百分比排序”视图的说明- 选择“分析”>“创建计算字段”
- 在打开的“计算字段”对话框中,执行以下操作,然后单击“确定”:
- 命名此计算字段。在此示例中,计算字段名为“占总排序顺序的百分比”
- 将带有三角形图标的绿色 SUM(Sales) 字段从列功能区拖到计算编辑器。Tableau 将写出快速表计算的公式。
- 可选:对于最终视图中的降序,将生成的公式乘以 -1
- 右键单击左侧数据窗格中的[占总排序顺序的百分比],然后选择“转换为离散”
- 将[占总排序顺序的百分比]拖到行功能区的第一个位置
- 右键单击行功能区中的[占总排序顺序的百分比],并取消选中显示标题
示例 2:按最近一年的销售额百分比差异,对子类别进行排序
这些说明将从“示例 2:按 2015 年百分比差异排序”视图开始。附加的工作簿提供了创建“示例 2:按 2015 年百分比差异排序”视图的说明- 选择“分析”>“创建计算字段”
- 在打开的“计算字段”对话框中,执行以下操作,然后单击“确定”:
- 命名此计算字段。在此示例中,计算字段名为“最近一年百分比差异排序顺序”
- 编写以下 IF THEN 语句:
WINDOW_SUM( IF LAST() = 0 THEN END )
IF THEN 语句会筛选视图中的最后一列。对于子类别中的每年,WINDOW_SUM() 函数将返回相同的筛选值。 - 将带有三角形图标的绿色 SUM(Sales) 字段从标签拖到“THEN”与“END”之间的计算编辑器。Tableau 将写出快速表计算的公式
- 可选:对于最终视图中的降序,将整个公式乘以 -1
- 右键单击左侧数据窗格中的[最近一年百分比差异排序顺序],然后选择“转换为离散”
- 将[最近一年百分比差异排序顺序]拖到行功能区的第一个位置
- 右键单击行功能区中的[最近一年百分比差异排序顺序],并取消选中显示标题
示例 3:按用户选择年份的总销售额百分比,对子类别进行排序
这些说明将从“示例 3:按已选项占总数的百分比排序”视图开始。附加的工作簿提供了创建“示例 3:按已选项占总数的百分比排序”视图的说明
- 选择“分析”>“创建计算字段”
- 在打开的“计算字段”对话框中,执行以下操作,然后单击“确定”:
- 命名此计算字段。在此示例中,计算字段名为“Year of Order Date”(订单日期的年份)
- 在公式字段中,创建一个类似于如下的计算:
DATEPART('year', [Order Date])
- 右键单击左侧数据窗格中的[订单日期的年份],并选择创建 > 参数...
- 在“创建参数”对话框中,执行以下操作,并单击“确定”:
- 为参数命名。在此示例中,参数名为“选择要排序视图的年份”
- 在显示格式下拉列表中,选择“数字(自定义)”,将格式选为 0 个小数位,并取消选中包含千位分隔符
- 选择何时打开工作簿,并在下拉列表中,选择订单日期的年份
- 创建名为“总数百分比”的计算字段,并将带有三角形图标的绿色 SUM(Sales) 字段从标签拖到计算编辑器。Tableau 将写出快速表计算的公式
- 使用如下公式,创建名为“已选年份占总排序顺序的百分比”的计算字段,例如:
-1 * WINDOW_SUM( IF MIN(YEAR([Order Date])) = [选择要排序视图的年份] THEN [占总数的百分比] END )
乘以 -1 将使最终视图按降序排序 - 右键单击左侧数据窗格中的[已选年份占总排序顺序的百分比],并选择“转换为离散”
- 将[已选年份占总排序顺序的百分比]拖到行功能区的第一个位置
- 右键单击行功能区中的[已选年份占总排序顺序的百分比],并选择编辑表计算...
- 在“表计算”对话框中,执行以下操作并关闭对话框:
- 在嵌套计算下拉列表中,选择占总数的百分比
- 在计算使用下方,选择表(向下)
注意:对于[已选年份占总排序顺序的百分比]引用的[占总数的百分比]字段,它的计算方式与视图中的快速表计算不同,因此确保计算总数的百分比必须相同。
- 右键单击行功能区中的[已选年份占总排序顺序的百分比],并取消选中显示标题
其他信息
最终,目标是创建计算字段,这将返回值,从而对视图进行排序:- 示例 1 显示了如何对简单条形图进行排序,其中行功能区仅有 1 个维度。
- 示例 2 按最后一列中的值,对高亮显示表的每一行进行排序。排序顺序计算必须仅返回 2015 年销售额值的百分比差异;但对于相同行,每年也必须返回 2015 年值。否则,每年将单独排序。
- 示例 3 也会按特定列中的值对高亮显示图进行排序;但此时,对于视图中的表计算,它的计算方式与创建排序顺序的表计算不同。这需要使用设置,设置高级计算,才可以得到正确结果。
即使视图包含表计算,由维度构成的标题的工具提示也会有排序图标;但是,此选项会基于当前值创建手动排序。当数据更新时,从标题工具提示创建的排序不会更新。
对于使用不同方式计算表计算生成不同的结果,有关此方面的更多信息,请查看使用表计算转换值和嵌套表计算
感谢您提供该文章是否有效的反馈。
打开新案例
继续搜索
知识库
社区
产品帮助
培训和教程
Trending Articles
Results 1-3 of 40