计算多行的值

注意:从版本 2020.4.1 开始,您可以在 Tableau ServerTableau Cloud 中创建和编辑流程。除非另有说明,否则本主题中的内容适用于所有平台。有关在 Web 上制作流程的详细信息,请参见 Tableau Server(链接在新窗口中打开)Tableau Cloud(链接在新窗口中打开) 帮助中的 Web 上的 Tableau Prep

多行计算可让您计算流程中多行数据之间的值。虽然与 Tableau 中的表计算类似,但在运行流程时,多行计算适用于整个数据集。您还可以使用其他类型的计算来构建结果。

注意:创建计算字段时,不要使用保留名称“Number of Records”(记录数)。使用此保留名称将导致与权限相关的错误。

在 Tableau 中,表计算仅适用于可视化项中的值。虽然您可以基于结果进行构建,但必须使用另一个表计算来执行此操作。有关在 Tableau 中使用表计算的详细信息,请参见 Tableau 帮助中的使用表计算转换值(链接在新窗口中打开)

在数据准备期间执行表计算可以在 Tableau 中分析数据时提供更大的灵活性。在构建视图时,您可以轻松地重复使用计算,并且基础计算不会受到筛选的影响。由于在查询运行后不会重新计算表计算,因此大型数据集的工作簿加载时间可能会更快。

Tableau Prep 目前支持以下多行计算:

  • 差异:计算当前行值与另一个值之间的差异。
  • 百分比差异:以百分比形式计算当前行值与另一个值之间的差异。
  • 移动计算:返回一组灵活的行中数字字段的总和或平均值。
  • 填充计算:计算并填充上面行中缺失的数据。
  • 运行计算:计算列中值的总和或平均值。

使用可视化计算编辑器快速生成计算,或在计算编辑器中编写您自己的自定义计算。

计算差异

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

“差异”计算对当前值与当前行之前或之后 N 行的值之间的差异进行运算。

可视化计算编辑器

从列表中选择字段,Tableau Prep 将在您进行选择时为您构建计算。新字段结果的预览显示在左侧窗格中,您可以在窗格最右侧查看计算结果。

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

  2. “分组依据”部分,选择具有要包括在计算中的行的字段。这会在执行计算时对表进行分区。若要将计算应用于表中的所有行,请接受默认值“完整表”

    选择第一个字段后,单击加号 图标以将任何其他“分组依据”字段添加到分区。若要重新排序或移除字段,请右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作。

  3. “排序依据”部分,选择要用作排序依据的字段。此字段用于指定 LOOKUP 函数如何对表中的行进行排序。

    如果您在其中选择“创建计算字段”>“差异”菜单选项的字段是日期或时间字段,则默认情况下会添加此字段,但您可以对其进行更改。

    单击加号 图标以向计算中添加任何其他“排序依据”字段。单击排序图标 将顺序从升序 (ASC) 更改为降序 (DESC)。您还可以右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作来重新排序或移除字段。

  4. “计算依据”部分,选择包含要用于计算结果的值的字段。
  5. “差异”部分,选择用于计算差异的行。例如,选择前一个值 2 可计算当前值与该值之前 2 行的值之间的差异。注释突出显示用于执行计算的行。

    默认情况下,计算预览将显示第一个非 null 行。但是,您可以单击结果表中的任意行并查看所选值的更新预览。

    如果无法使用当前设置执行计算,则会显示注释“值不足” 。为了解决此问题,请选择不同的当前值或更改“差异”部分中的配置。

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

计算编辑器

如果您想编写自己的计算来计算两个值之间的差异,请在计算编辑器中使用 LOOKUP 函数。

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

  2. 在“计算编辑器”中输入表达式。例如,若要按区域查找当前销售额与前一天销售额之间的差异,请创建如下所示的计算。

    {PARTITION [Region]:{ ORDERBY [Order Date]ASC:LOOKUP([Sales],0)}}
    -
    { PARTITION [Region]:{ ORDERBY [Order Date]ASC:LOOKUP([Sales],1)}}

  3. 为计算输入一个名称,并单击“保存”

计算百分比差异

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

百分比差异计算以百分比形式计算当前值与当前行之前或之后 N 行的值之间的差异。例如,Value1-Value2/Value2

可视化计算编辑器

从列表中选择字段,Tableau Prep 将在您进行选择时为您构建计算。新字段结果的预览显示在左侧窗格中,您可以在窗格最右侧查看计算结果。

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

  2. “分组依据”部分,选择具有要包括在计算中的行的字段。这会在执行计算时对表进行分区。若要将计算应用于表中的所有行,请接受默认值“完整表”

    选择第一个字段后,单击加号 图标以将任何其他“分组依据”字段添加到分区。若要重新排序或移除字段,请右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作。

  3. “排序依据”部分,选择要用作排序依据的字段。此字段用于指定 LOOKUP 函数如何对表中的行进行排序。

    如果您在其中选择“创建计算字段”>“百分比差异”菜单选项的字段是日期或时间字段,则默认情况下会添加此字段,但您可以对其进行更改。

    单击加号 图标以向计算中添加任何其他“排序依据”字段。单击排序图标 将顺序从升序 (ASC) 更改为降序 (DESC)。您还可以右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作来重新排序或移除字段。

  4. “计算依据”部分,选择包含要用于计算结果的值的字段。
  5. “百分比差异”部分,选择用于计算结果的行。例如,选择前一个值 2 可计算当前值与该值之前 2 行的值之间的百分比差异。注释突出显示用于执行计算的行。

    默认情况下,计算预览将显示第一个非 null 行。但是,您可以单击结果表中的任意行并查看所选值的更新预览。

    如果无法使用当前设置执行计算,您将看到注释“值不足”。为了解决此问题,请选择不同的当前值或更改“百分比差异”部分中的配置。

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

计算编辑器

如果您想编写自己的计算来计算两个值之间的百分比差异,请在计算编辑器中使用 LOOKUP 函数。

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

  2. 在“计算编辑器”中输入表达式。例如,若要按区域查找当前销售额与前几天销售额之间的百分比差异,请创建如下所示的计算。

    { PARTITION [Region]:{ ORDERBY [Order Date]ASC:LOOKUP([Sales],0)}}
    -
    { PARTITION [Region]:{ ORDERBY [Order Date]ASC:LOOKUP([Sales],-1)}}
    /
    { PARTITION [Region]:{ ORDERBY [Order Date]ASC:LOOKUP([Sales],-1)}}

  3. 为计算输入一个名称,并单击“保存”

计算移动平均值或总和

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

创建移动计算以更好地了解数据趋势并减少总体波动。在 Tableau Prep 中,您可以计算当前值之前或之后指定数量的值的移动平均值或总和。例如,跟踪每个地区销售额的三个月移动平均值。

可视化计算编辑器

从列表中选择字段,Tableau Prep 将在您进行选择时为您构建计算。新字段结果的预览显示在左侧窗格中,您可以在窗格最右侧查看计算结果。

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

  2. “分组依据”部分,选择具有要包括在计算中的行的字段。这会在执行计算时对表进行分区。若要将计算应用于表中的所有行,请接受默认值“完整表”

    选择第一个字段后,单击加号 图标以将任何其他“分组依据”字段添加到计算。若要重新排序或移除字段,请右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作。

  3. “排序依据”部分,选择要用作排序依据的字段。此字段用于指定 LOOKUP 函数如何对表中的行进行排序。

    如果您在其中选择“创建计算字段”>“移动计算”菜单选项的字段是日期或时间字段,则默认情况下会添加此字段,但您可以对其进行更改。

    单击加号 图标以向计算中添加任何其他“排序依据”字段。单击排序图标 将顺序从升序 (ASC) 更改为降序 (DESC)。您还可以右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作来重新排序或移除字段。

  4. “计算依据”部分,选择包含要用于计算结果的值的字段。
  5. “结果”部分,选择要执行的聚合(总和或平均值)、要包含在计算中的行数以及是包含还是排除当前行。

    若要更改结果设置,请单击“值”字段中的下拉菜单。例如,若要计算当月和前 2 个月的销售额移动平均值,请将“上一个值”设置为 2 并关闭对话框。

  6. 默认情况下,计算预览将显示第一个非 null 行。但是,您可以单击结果表中的任意行并查看所选值的更新预览。注释突出显示用于执行计算的行。

    如果无法使用当前设置执行计算,您将看到注释“值不足”。为了解决此问题,请单击“值”字段中的下拉菜单以更改“结果设置”中的配置。

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

计算编辑器

如果您想编写自己的计算来计算移动平均值或总和,请在计算编辑器中使用 LOOKUP 函数。

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

  2. 在“计算编辑器”中输入表达式。例如,若要按区域查找销售额三个月的移动平均值,请创建如下所示的计算。

    注意:此示例假设数据集的详细级别正确,每月一行。如果您的数据集的详细级别不正确,请考虑在应用计算之前使用聚合步骤来更改此设置。

    { PARTITION [Region]:{ ORDERBY [Year of Sale]ASC,[Order Month]ASC:LOOKUP([Sales],-2)}}
    +
    { PARTITION [Region]:{ ORDERBY [Year of Sale]ASC,[Order Month]ASC:LOOKUP([Sales],-1)}}
    +
    { PARTITION [Region]:{ ORDERBY [Year of Sale]ASC,[Order Month]ASC:LOOKUP([Sales],-0)}}
    /
    3

  3. 为计算输入一个名称,并单击“保存”

获取上一个值

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

如果您需要使用前一行的值创建一个字段,您可以使用 LOOKUP 函数创建自定义计算。

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

  2. 在“计算编辑器”中输入表达式。例如,若要按订单日期查找以前的销售额值,请创建如下所示的计算。

    注意:此示例假设数据集的详细级别正确,每天一行。如果您的数据集的详细级别不正确,请考虑在应用计算之前使用聚合步骤来更改此设置。

    { ORDERBY [Order Date]ASC:LOOKUP([Sales],-1)}

  3. 为计算输入一个名称,并单击“保存”

填充计算

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

填充计算会计算并填充缺失的数据,以便将 null 值替换为上面行中的值,从而使数据易于可视化。下面的示例显示了填充计算的结果,方法是将“Student”(学生)字段中的 null 值替换为基于上面行的值。

Prep 可视化计算编辑器

  1. 在配置卡或结果窗格中,单击“更多选项” 菜单,并选择“创建计算字段”>“填充”
  2. “分组依据”部分,您可以在执行计算时选择字段来对数据进行分区。如果您不希望对数据进行分区,请接受默认值“完整表”
  3. 选择第一个字段后,您可以通过单击加号 图标将其他“分组依据”字段添加到分区中。若要重新排序或移除字段,请右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作。

  4. “排序依据”部分,选择要用于排序顺序的一个或多个字段。此字段用于指定表中行的顺序。

  5. 您还可以在文本、CSV 或 Excel 文件的输入步骤中添加源行号,以按数据源顺序对数据进行排序。

  6. 单击加号 图标以向计算中添加任何其他“排序依据”字段。您至少必须选择一个字段。单击排序图标 将顺序从升序 (ASC) 更改为降序 (DESC)。您还可以右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作来重新排序或移除字段。
  7. “计算依据”部分,选择包含要填充的值的字段。“结果”字段以粗体显示填充的值。

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

计算编辑器

  1. 在“配置”窗格工具栏中单击“创建计算字段”,或在配置卡或数据网格中单击“更多选项” 菜单,并选择“创建计算字段”>“自定义计算”
  2. 在“计算编辑器”中输入表达式。
  3. 为计算输入一个名称,并单击“保存”
  4. 示例

    带分区的填充示例:根据以下数据,您可以使用 LAST_VALUE 函数填充“Sensor Category”(传感器类别)字段中的缺失值。在此示例中,“Sensor ID”(传感器 ID)用于对数据进行分区,“Time Stamp”(时间戳)用于对数据进行排序,“Sensor Category”(传感器类别)用于对数据进行运算。

    填充结果在计算窗格中突出显示。

    不带分区的填充示例:根据以下数据,您可以填充“Student”(学生)字段的缺失值。“Source Row Number”(源行号)字段已添加到输入步骤中,用于按源顺序对数据进行排序。“Student”(学生)用于对数据进行运算。

    填充结果在计算窗格中突出显示。

运行计算

在 Tableau Prep Builder 2023.2 及更高版本以及 Tableau Cloud 中的 Web 上受支持。在 Tableau Server 2023.3 及更高版本中也受支持。

运行计算运算某个值与列中所有先前值的累积总和或平均值。下面的示例显示了随时间变化的销售额总和的运行计算结果。

Prep 可视化计算编辑器

  1. 在配置卡或结果窗格中,单击“更多选项” 菜单,并选择“创建计算字段”>“填充”
  2. 在“分组依据”部分,您可以在执行计算时选择字段来对数据进行分区。如果您不希望对数据进行分区,请接受默认值“完整表”
  3. 选择第一个字段后,您可以通过单击加号 图标将其他“分组依据”字段添加到分区中。若要重新排序或移除字段,请右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作。

  4. “排序依据”部分,选择要用于排序顺序的一个或多个字段。此字段用于指定表中行的顺序。

  5. 您还可以在文本、CSV 或 Excel 文件的输入步骤中添加源行号,以按数据源顺序对数据进行排序。

  6. 单击加号 图标以向计算中添加任何其他“排序依据”字段。您至少必须选择一个字段。单击排序图标 将顺序从升序 (ASC) 更改为降序 (DESC)。您还可以右键单击或按住 Ctrl 键单击 (MacOS),然后从菜单中选择一个操作来重新排序或移除字段。
  7. “结果”部分,选择要执行的聚合(SUM 或 AVG),以获得运行总和或运行平均值
  8. 单击结果表中的各行并查看所选值的更新预览。注释突出显示用于执行计算的行。

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

计算编辑器

  1. 在“配置”窗格工具栏中单击“创建计算字段”,或在配置卡或数据网格中单击“更多选项” 菜单,并选择“创建计算字段”>“自定义计算”
  2. 在“计算编辑器”中输入表达式。例如,根据以下数据,您可以使用 RUNNING_SUM 函数计算一段时间内的“Sales”(销售额)总计。数据未分区,而是使用“完整表”进行分组。“Order”(顺序)字段用于按时间顺序排序,“Sales”(销售额)用于对数据进行运算。

  3. 为计算输入一个名称,并单击“保存”

    运行总和结果在计算窗格中突出显示。

感谢您的反馈!您的反馈已成功提交。谢谢!