0

我有两个分类列“工作行业类别”和“财富细分”,我可以使用行中的“工作行业类别”和“财富细分”创建一个交叉表来计算每个行业的值。

这是我的交叉表目前的样子:

图片 0

但我想动态计算每个行业的财富段列,然后返回每个行业的最大数量的财富段。

这就是我想要实现的:

图一

我试过的:

我尝试使用 LOD 表达式来获取每个行业的财富段的最大计数,但它返回一个非聚合值,我无法提取相应值的财富段标签。

MAX(
{ FIXED [Job Industry Category], [Wealth Segment] : COUNT([Wealth Segment]) }
)

我也尝试过将 IF THEN 语句与 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

错误:不能使用此函数混合聚合和非聚合

提前致谢。

4

1 回答 1

1

您在这里以不正确的方式做 2-3 件事。

1您的第一个屏幕截图(表)不是您的数据,而是已经是交叉表查询(在 excel 中称为数据透视表),所以您怎么能想象行或列中的一些额外列。(第二个屏幕截图)。tableau 不是像 excel 这样的电子表格,您可以在其中根据自己的方便创建行/列。

2为什么你使用count(wealth status)聚合。虽然它会给出相同的值,但在这里您需要number of records在 tableau 的早期版本中调用的记录/数据计数。

3你没有考虑两个计数相等的情况。(这些很可能是相等的,不是吗?)

如果您愿意,您可以完全创建一个新列(当然没有交叉表视图/即),您可以获得比其他更多记录的财富类别名称。

我创建了一些随机数据来复制您的问题。我的数据看起来像(有 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值,并可以获得所需的即

在此处输入图像描述

注意卫生部门的两个结果

我对 Tableau 新用户的真诚建议 -首先不要学习电子表格

祝你好运

于 2020-12-26T13:45:21.360 回答