根据另一列和每行具有最大计数的 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 新用户的诚挚建议 - 先忘掉电子表格
祝你好运
我有两个分类列“工作行业类别”和“财富细分”,我可以使用行中的“工作行业类别”和“财富细分”创建交叉表来计算每个行业的值。
这是我的交叉表目前的样子:
但我想动态统计每个行业的财富细分栏目,然后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 新用户的诚挚建议 - 先忘掉电子表格
祝你好运