我有两个分类列“就业行业类别”和“财富部门”,我可以创建一个交叉表使用“就业行业类别”和“财富细分”来计算每个行业的价值。
,这就是我的交叉表当前的样子:
但是,我希望动态计算每个行业的财富部分列,然后返回每个行业的最大计数的财富部分。
,这就是我想要的:
我尝试过的:
我尝试过使用LOD表达式来获得每个行业财富分段计数的最大值,但这会返回一个非聚合值,并且我无法提取相应值的财富段标签。
MAX(
{ FIXED [Job Industry Category], [Wealth Segment] : COUNT([Wealth Segment]) }
)
我也尝试过使用IF tried语句和LOD表达式,但是,因为LOD表达式是一个非聚合的值,所以它会引发错误。这就是我试过的:
IF
{ FIXED [Job Industry Category], [Wealth Segment] : COUNT([Wealth Segment]) } = MAX(
{ FIXED [Job Industry Category], [Wealth Segment] : COUNT([Wealth Segment]) })
THEN
[Wealth Segment]
END
错误:不能将聚合和非聚合与此函数混合。
提前谢谢。
发布于 2020-12-26 13:45:21
你在这里做的事情不是以正确的方式进行的。
1您的第一个屏幕截图(表)不是您的数据,但是已经是一个交叉表查询(在excel中称为枢轴表),所以您如何能够想象在行或列中有额外的列。(第二张截图)。tableau不是像excel那样的电子表格,您可以根据方便创建行/列。
2为什么使用count(wealth status)
作为聚合。虽然它会给出相同的值,但在这里,您需要在tableau的早期版本中将名为number of records
的记录/数据计数。
3您还没有考虑到两个计数相等的情况。(它们很可能是平等的,不是吗?)
如果您想要的话,您可以创建一个新的列(当然没有交叉选项卡视图/viz),在这里您可以获得财富类别的名称,其中有比其他列更多的记录。
我创建了一些随机数据来复制你的问题。我的数据看起来像是(有100行)(表名是weal.csv
)
交叉标签看起来
使用以下计算创建计算字段,例如Max of Wealth
IF {Fixed [Sector], [Wealth Status]: COUNT([weal.csv])} =
{FIXED [Sector]: MAX({Fixed [Sector], [Wealth Status]: COUNT([weal.csv])})}
then [Wealth Status] END
您可以从该字段中筛选出null
值,并且可以获得所需的值,如
注意到卫生部门的两个结果
我对新的桌面用户的真诚建议-取消电子表格第一
祝好运
https://stackoverflow.com/questions/65453181
复制相似问题