我正在尝试在Tableau中混合2个数据源。

当将字段从辅助数据源带入主数据源中的计算字段时,它将迫使我在该点聚合。

我的计算是一个乘法,当Tableau小计时,它以一种有趣的方式进行计算:

Formula = SUM(primary.a) x MAX(secondary.b)

Expected subtotal method = SUM(SUM(primary.a) x MAX(secondary.b))

Actual behavior seen = SUM(SUM(primary.a)) x MAX(secondary.b)


它对a字段求和,然后在之后应用max b乘法。

有什么想法如何控制这种计算方式?

最佳答案

几天前发生了完全相同的问题。实际行为是正确的,因为它取决于您使用的分区(工作表中的尺寸)。让我解释。假设您有表A和表B:

A:

Id  MeasureA
1   10
2   20
3   15
4   25
5   10
6   5


B:

Id  MeasureB
1   5
2   10
3   20
4   5
5   15
6   25


现在,如果将Id拖动到Rows,将公式拖动到Columns(在条形图中),则应该具有以下内容:

Id  MeasureB
1   50
2   200
3   300
4   125
5   150
6   125


对于第一行,您将拥有SUM(A.MeasureA)= 10,MAX(B.MeasureB)=5。乘积为50

现在,如果您从行中删除ID,则SUM(A.MeasureA)= 85,MAX(B.MeasureB)=25。乘积将为2,125,而不是您期望的950(第三张表中的值之和)

请记住,聚合发生在工作表上明确显示的维度级别。

为了获得更精确的结果,您需要在连接到Tableau之前先加入表。我想在SQL上做起来不是很难。仅通过数据混合无法获得想要的内容(仅在最低级别的聚合中)

07-24 09:38
查看更多