创建详细级别和排名计算

注意:从版本 2020.4.1 开始,您现在可以在 Tableau ServerTableau Online 中创建和编辑流程。除非特别指出,本主题中的内容适用于所有平台。有关在 Web 上制作流程的详细信息,请参见Web 上的 Tableau Prep

可以使用计算字段,通过数据源中已存在的数据来创建新数据。Tableau Prep 支持的许多计算类型与 Tableau Desktop 相同。有关创建计算的一般信息,请参见 Tableau 中的计算入门指南(链接在新窗口中打开)

Tableau Prep Builder 版本 2020.1.3 开始以及在 Web 上,您可以使用 FIXED 详细级别 (LOD) 以及 RANK and ROW_NUMBER 分析函数来执行更复杂的计算。

例如,添加 FIXED LOD 计算来更改表中字段的粒度、使用新的 ROW_NUMBER() 分析函数快速查找重复行,或使用新的 RANK() 函数之一来查找具有类似数据的所选行的前 N 个或后 N 个值。如果希望在构建这些类型的表达式时获得更多指引,您可以使用新的可视化计算编辑器。

注意Tableau Desktop 中支持的某些函数在 Tableau Prep 中可能不受支持。若要查看可用于 Tableau Prep 的函数,请查看计算编辑器中的函数列表。

计算详细级别

当您需要在同一表中以多个粒度级别计算数据时,可以编写详细级别 (LOD) 表达式来执行此操作。举例来说,如果要查找每个区域的总销售额,可以编写类似于 {FIXED [Region] : SUM([Sales])} 的计算。

Tableau Prep 支持 FIXED 详细级别表达式,并使用语法 {FIXED [Field1],[Field2] : Aggregation([Field)}

LOD 表达式有两个用冒号分隔的等式部分。

  • FIXED [字段](必需):这是您要为其计算值的一个或多个字段。举例来说,如果要查找客户和区域的总销售额,请输入 FIXED [Customer ID], [Region]:。如果未选择任何字段,这相当于执行在冒号右侧定义的聚合,并为每一行重复该值。

  • 聚合([字段])(必需):选择要计算的内容以及所需的聚合级别。举例来说,如果要查找总销售额,请输入 SUM([Sales]

在 Tableau Prep 中使用此功能时,以下要求适用:

  • 不支持 INCLUDEEXCLUDE LOD 表达式。
  • 仅支持在 LOD 表达式内部使用聚合计算。例如,SUM([Sales]) 将无效,但 {FIXED [Region] : SUM([Sales])} 有效。
  • 不支持在 LOD 表达式内嵌套表达式。例如,不支持 { FIXED [Region] : AVG( [Sales] ) / SUM( [Profit] )}
  • 不支持将 LOD 表达式与其他表达式结合使用。例如,[Sales]/{ FIXED [Country / Region]:SUM([Sales])} 不受支持。
  • 创建详细级别 (LOD) 计算

    若要创建详细级别计算,可以使用计算编辑器自行编写计算,或者,如果您希望获得更多指引,则可以使用可视化计算编辑器,您可以在其中选择字段,Tableau Prep 将为您编写计算。

    计算编辑器

    1. 在“配置”窗格工具栏中单击“创建计算字段”,或在配置卡或数据网格中单击“更多选项” 菜单,并选择“创建计算字段”>“自定义计算”

    2. 在计算编辑器中,输入计算的名称,并输入表达式。

      例如,若要按城市查找产品平均发货天数,请创建如下所示的计算。

    可视化计算编辑器

    从列表中选择字段,Tableau Prep 将在您进行选择时为您构建计算。结果的预览显示在左侧窗格中,这样您就能够随时查看所选内容的结果。

    1. 在配置卡或结果窗格中,单击“更多选项” 菜单并选择“创建计算字段”>“FIXED LOD”

    2. 在可视化计算编辑器中,执行以下操作:

      • “分组依据”部分,选择要为其计算值的字段。 默认情况下,将添加您在其中选择了“创建计算字段”>“FIXED LOD”菜单选项的字段。单击加号 图标以向计算中添加任何其他字段。这将填充等式的左侧,即 {FIXED [Field1],[Field2] :
      • “计算依据”部分,选择要用于计算新值的字段。 然后选择您的聚合。这将填充等式的右侧,即 Aggregation([Field)}

        字段下方的图形显示值的分布和每个值组合的总计数。根据数据类型,这可以是盒形图、值范围或实际值。

        注意:可用聚合值因分配给字段的数据类型而异。

      • 若要移除字段,请在“分组依据”部分的字段下拉框中右键单击或按住 Ctrl 单击 (MacOS), 然后选择“移除字段”

      • 在左侧窗格中,双击字段标题并输入用于计算的名称。
    3. 单击“完成”以添加新的计算字段。 在“更改”窗格中,您可以看到 Tableau Prep 生成的计算。单击“编辑”打开可视化计算编辑器以进行任何更改。

计算排名或行号

分析函数(有时称为窗口计算)使您能够对整个表或数据集中的所选行(分区)执行计算。例如,在将排名应用于所选行时,可以使用以下计算语法:

{PARTITION [field]: {ORDERBY [field]: RANK() }

  • PARTITION(可选):指定要对其执行计算的行。可以指定多个字段,但如果要使用整个表,请省略函数的此部分,Tableau Prep 会将所有行视为分区。例如,{ORDERBY [Sales] : RANK() }

  • ORDERBY(必需):指定要用于生成排名序列的一个或多个字段。

  • Rank ()(必需):指定要计算的排名类型或 ROW_NUMBER ()。Tableau Prep 支持 rank()、RANK_DENSE()、RANK_MODIFIED()、RANK_PERCENTILE() 和 ROW_NUMBER() 函数。

  • DESCASC(可选):表示降序 (DESC) 或升序 (ASC) 顺序。 默认情况下,排名按降序排序,因此无需在表达式中指定此项。如果要更改排序顺序,请向表达式中添加 ASC

    也可以在函数中同时包括这两个选项。举例来说,如果要对所选行进行排名,但希望按升序对行进行排序,然后按降序应用排名,则应在表达式中包括这两个选项。例如:{PARTITION [Country], [State]: {ORDERBY [Sales] ASC,[CUSTOMER] DESC: RANK() }}

使用此功能时,以下要求适用:

  • 不支持在 RANK () 函数中嵌套表达式。例如,不支持 [Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} / SUM( [Profit] )}
  • 不支持将 RANK () 函数与其他表达式结合使用。例如,[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} 不受支持。

支持的分析函数

函数 说明 示例
RANK() 从 1 开始按升序或降序为每一行分配整数排名。如果行具有相同的值,则它们共享分配给该值的第一个实例的排名。在计算下一行的排名时,将添加具有相同排名的行数,因此您可能无法获得连续排名值。
RANK_DENSE() 从 1 开始按升序或降序为每一行分配整数排名。如果行具有相同的值,则它们共享分配给该值的第一个实例的排名,但不会跳过任何排名值,因此您会看到连续排名值。
RANK_MODIFIED() 从 1 开始按升序或降序为每一行分配整数排名。如果行具有相同的值,则它们共享分配给该值的最后一个实例的排名。不会跳过排名值。Rank_Modified 的计算方式为 Rank + (Rank + Number of duplicate rows - 1)
RANK_PERCENTILE()

从 0 到 1 按升序或降序为每一行分配百分比排名。RANK_PERCENTILE 的计算方式为 (Rank-1)/(Total rows-1)

注意:如果出现平局,Tableau Prep 会向下舍队,类似于 SQL 中的 PERCENT_RANK()。

ROW_NUMBER() 为每个唯一行分配连续的行 ID。如果具有重复行并使用此计算,则每次运行流程时,如果行的顺序发生更改,结果可能会发生变化。

创建排名或行号计算

若要创建排名或行号计算,可以使用计算编辑器自行编写计算,或者,如果您希望获得更多指引,则可以使用可视化计算编辑器,您可以在其中选择字段,Tableau Prep 将为您编写计算。

注意:RROW_NUMBER() 计算在可视化计算编辑器中不可用。

计算编辑器

使用计算编辑器创建任何支持的 RANK() 或 ROW_NUMBER() 计算。支持的分析计算列表显示在计算编辑器中“分析”下的“参考”下拉列表中。

  1. 在“配置”窗格工具栏中单击“创建计算字段”,或在配置卡或数据网格中单击“更多选项” 菜单,并选择“创建计算字段”>“自定义计算”

  2. 在计算编辑器中,输入计算的名称,并输入表达式。

    例如,要查找最新的客户订单,请创建如下所示的计算,然后仅保留使用数字 1 排名的客户订单行。

示例:使用 ROW_NUMBER 查找和移除重复值

本示例使用 Tableau Prep Builder 中的 Superstore 示例数据集,使用 ROW_NUMBER 函数查找和移除字段“Row ID”(行 ID) 的确切重复值。

  1. 打开“Sample Superstore”(示例超市)流程。

  2. 在“流程”窗格中,对于“输入”步骤“Orders West”(对西部排序),单击“清理”步骤“Rename States”(重命名状态)

  3. 在工具栏中,单击“创建计算字段”

  4. 在计算编辑器中,使用 ROW_NUMBER 函数,通过 {PARTITION [Row ID]: {ORDERBY[Row ID]:ROW_NUMBER()}} 表达式向字段“Row Id”(行 ID)中添加行号,然后单击“保存”

  5. 在新的计算字段中,在字段值“1”上右键单击或按住 Cmd 单击 (MacOS),然后从菜单中选择“只保留”

    之前 之后

可视化计算编辑器

就像创建详细级别计算时一样,您可以使用可视化计算编辑器来生成排名计算。选择要在计算中包括的字段,然后选择要用于对行进行排名的字段,以及要计算的排名类型。结果的预览显示在左侧窗格中,这样您就能够随时查看所选内容的结果。

  1. 在配置卡或结果窗格中,单击“更多选项” 菜单并选择“创建计算字段”>“排名”

  2. 在可视化计算编辑器中,执行以下操作:

    • “分组依据”部分,选择要针对其各个行计算值的字段。这将创建计算的 Partition 部分。

      单击加号 图标以向计算中添加任何其他字段。如果要包括所有行或移除所选行,请在“分组依据”部分的字段下拉框中右键单击或按住 Cmd 单击 (MacOS), 然后选择“移除字段”

    • “排序依据”部分,选择要用于对新值进行排名的字段。默认情况下,将添加您在其中选择了“创建计算字段”>“排名”菜单选项的字段。

      单击加号 图标以向计算中添加任何其他字段,然后选择“排名”类型。单击排序 图标将排名顺序从降序 (DESC) 更改为升序 (ASC)。

      注意:排名值因分配给字段的数据类型而异。

    • 在左侧窗格中,双击字段标题并输入用于计算的名称。

  3. 单击“完成”以添加新的计算字段。在“更改”窗格中,您可以看到 Tableau Prep Builder 生成的计算。单击“编辑”打开可视化计算编辑器以进行任何更改。

 

感谢您的反馈!