Loading

在 Tableau Prep 中查找表格计算

发布日期: Jun 19, 2023
描述

无法利用 Tableau Prep 中的查找表计算来引用不同行的值进行分析。

Cause

从版本 2023.2 开始,产品可提供在 Tableau Prep 中使用 LOOKUP 计算的功能。  在此版本之前,无法进行 LOOKUP 操作。
解决方案
1.升级到 Tableau Prep 版本 2023.2 或更高版本。  现在,在 Tableau Prep 版本 2023.2+ 中,可以利用 LOOKUP() 计算来引用不同行的值,以便进行分析。请参阅获取之前的值,了解更多信息。

2.如果使用 Tableau Prep 版本 2023.1 或更早版本,请查看以下解决方案。

使用移位自联接来查找偏移值。以下示例使用示例数据集 Superstore 来查找前一天的总销售额。工作簿和准备流程都可以从本文的附件部分下载。
  1. 连接到 Tableau Prep 中的 Superstore。有关详细说明,请参阅连接到数据
  2. 创建聚合步骤。有关详细说明,请参阅聚合和分组值
  3. 在聚合 1 中,将订单日期拖到分组字段中,将销售额拖到聚合字段中
  4. 创建清理步骤,并将其命名为“创建行号”
  5. 在“创建行号”清理步骤中,执行以下操作:
    1. 使用如下公式创建名为“行号”的计算字段 
    2. { ORDERBY [Order Date] ASC : ROW_NUMBER() }
    3. 将 [销售额] 重命名为“每日销售额”
  6. 创建清理步骤,并将其命名为“行号 + 1” 
  7. 在“行号 + 1”清理步骤中,执行以下操作:
    1. 使用如下公式创建名为“行号 + 1”的计算字段
    2. [行号] + 1
    3. 将 [每日销售额] 重命名为“以前的每日销售额”
    4. 删除 [行号]
  8. 将“行号+ 1”清理步骤拖到“创建行号”清理步骤上,并放在“联接”上
  9. 在“联接 1”中,执行以下操作:
    1. 将联接子句更新为 [行号] = [行号 + 1]
    2. 单击 Venn 图创建左联接 
  10. 从联接中创建新的清理步骤,并将其命名为“删除字段”
  11. 在“删除字段”清理步骤中,删除字段 [行号]、[行号 + 1] 和[订单日期-1]
  12. 将“删除字段”清理步骤拖到“创建行号”清理步骤上,并放在“联接”上
  13. 在“联接 3”中,Tableau 应在 [订单日期] = [订单日期] 上自动联接
  14. 在“联接 3”之后添加清理步骤,并将其命名为“合并联接字段”
  15. 在“合并联接字段”清理步骤中,合并 [订单日期] 和 [订单日期-1]
  16. 输出数据并连接到 Tableau Desktop 中的输出
  17. 右键单击右侧数据窗格中的 [以前的每日销售额],然后选择默认属性 > 聚合 > 平均值
  18. 对 [每日销售额] 重复步骤 17
其他资源
  • 有时 Tableau Desktop 中的表格计算将是更好的解决方案。表格计算是动态的:如果 [类别] 被添加到所附工作簿中“表格计算示例”工作表的行功能区中,那么表格计算将自动更新以返回每个类别前一天的销售额。相反,准备流程的输出是静态的。这意味着必须更新准备流程以更改输出。
  • 在本例中,必须开始聚合步骤,因为每天有多条记录。如果目标是返回基础数据中前一个记录的值,则不需要聚合步骤。步骤 17 和 18 也不必要。
  • 将默认聚合更改为平均值时,必须执行步骤 17 和 18,因为 Tableau Prep 返回同一天每条记录的总销售额。因此,SUM([以前每天的销售额]) 将被当天的订单数复制。有多种方法可以处理这种重复,有关另一种解决方案,请参阅使用 LOD 计算删除重复数据
  • 移位的自联接也可以是类似于订单日期 = 订单日期 + 1 的形式。但是,如果缺少日期,这将创建空值,这就是为什么这个解决方案改为在行号 = 行号+ 1 上联接的原因。 
知识文章编号

001471487

附件

LOOKUP recreated in Prep_v2022.twbx

1683 KB

recreate LOOKUP in Prep.tflx

1001 KB

 
正在加载
Salesforce Help | Article