根据另一列和每行具有最大计数的 return 标签计算出现次数

Count occurence based on another column and return label having maximum count for each row

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

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

但我想动态统计每个行业的财富细分栏目,然后return每个行业的财富细分栏目数量最多。

这就是我想要实现的:

我试过的:

我尝试使用 LOD 表达式来获取每个行业的财富细分计数最大值,但是 return 是一个非聚合值,我无法提取相应值的财富细分标签.

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

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

提前致谢。

你在这里做的 2-3 件事不正确。

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

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

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

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

我创建了一些随机数据来复制您的问题。我的数据看起来像(有 100 行)(table name is 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 新用户的诚挚建议 - 先忘掉电子表格

祝你好运