我正在尝试在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上做起来不是很难。仅通过数据混合无法获得想要的内容(仅在最低级别的聚合中)