如何按组查找同一列中的项目差异?

时间:2018-11-10 13:29:38

标签: tableau tableau-server tableau-public

数据集是大学排名,并且我有一列“世界排名”和“年份”。我想创建一个名为“排名差异”的新字段,以查看2018年至2011年大学排名的差异。例如:

Name     Year   World Rank
Harvard  2011    4
Harvard  2018    5

对于上述情况,等级差为-1。数据集包含很多大学,我不确定如何执行LOD或其他任何解决方案。

1 个答案:

答案 0 :(得分:0)

在某些情况下,您可以在计算中使用“ if”来返回值,否则返回null。一个短语是经过过滤的计算。由于min(),max(),avg()等聚合计算会默默忽略空值,因此您可以在聚合计算中使用过滤后的计算。

因此,假设您的数据源每年每所大学有一行,并且将[University]作为维度放置在某个架子上,那么以下计算将得到您想要的结果。由于每年每所大学只有一排,因此可以轻松地使用max(),sum()或avg()代替min()

min(if [Year] = 2018 then [World Rank] end) - min(if [Year] = 2011 then [World Rank] end)

要扩展,您可以使用用户提供的参数代替硬编码的开始和结束年份,或者使用LOD计算来查找数据集中各大学的最早和最新记录。