首页 > 解决方案 > 连接两种不同类型的表时 Tableau 中的自定义聚合

问题描述

我对 Tableau 很陌生,但在其他方面非常精通数据和 SQL 等。

我正在开发一个显示一些财务数据的仪表板。两个主要类别是“实际”结果和“计划”(或预算)。

实际结果按成本中心和帐户在单个交易级别。该计划位于成本中心和帐户级别。例如:

实际表:

Cost Center | Account | Amount
______________________________
ABC           10023     500
ABC           10023     600
BAC           10023     250
BAC           10023     300

计划表:

Cost Center | Account | Plan Amount
___________________________________
ABC           10023     2000
BAC           10023     2300

在 Tableau 中将这两个表连接在一起时,计划金额会在事务级别重复(显然,因为它是一个简单的 LEFT JOIN),在此示例中,成本中心 ABC 将总计为 4000,而对于 BAC,它将总计 4600 个。

我希望以某种方式完成的是计划金额仅在成本中心级别汇总,而不是在交易级别汇总。在我使用的实际表格中,成本中心通过部门层次结构汇总,即一个部门可以有多个成本中心等,当我在一个部门或部门级别显示结果时,它真的会炸毁计划金额数字,他们被夸大了。

有什么方法可以在 Tableau 中实现这一点吗?在 SQL 中,我可能会使用某种窗口函数将计划金额除以每个成本中心的事务数,以便正确聚合(尽管这会导致一些舍入错误,但不会导致该材料)。但不知道如何在 Tableau 中执行此操作。

标签: tableau-api

解决方案


加入时,它将被置于事务级别,就像任何正常的内部连接一样。因此,您可以选择如何处理此问题。

您可以使用聚合来做到这一点 - 即您可以使用 MIN / MAX / AVG 字段而不是 SUM,这将始终返回相同的值。

或者,您可以混合这些数据,而不是加入。如果您在可视化层中混合并且仅在显示成本中心级别时混合它,这将阻止聚合所有事务。混合这将是一个完全独立的数据源。它将在 Tableau 中“混合连接” - 请参阅数据 - 在 Tableau 中编辑混合关系。


推荐阅读