如何查找和显示每组记录的最新记录?



我正在使用Tableau,我有三个列:

员工
  • <
  • 最新角色/gh>

对于每个员工,我需要一个公式来检索每个员工的最新角色(从日期排序)并将其显示在"当前角色"中。列。

感谢您的支持。

有几种方法可以解决这个问题,但下面是一种非常通用的方法。把这个问题分成两步。

  1. 首先定义一个(LOD)计算,用于查找每个员工的最新角色的日期。将其命名为最新角色的日期{ FIXED [Employee] : MAX([Date]) }
  2. 然后定义一个条件(记录级)计算,该计算返回具有其雇员最新日期的记录的Role(并且在默认情况下计算结果为null)。将其命名为最新角色IF [Date] = [Date of Latest Role] then [Role] end

请注意,如果您的数据中有两个角色的员工在相同的最近日期开始,那么您的两个记录将具有[latest Role]的非空值。但除此之外,它几乎没有皱纹。

例如,您可以将Employee放在Rows架子上,将[Latest Role]放在Text架子上。如果您愿意,您可以过滤掉空的最新角色—或者如果有多个最新角色,可以将最新角色显示为属性而不是维度以忽略空并显示为' * '。

或者,您可以使用排序LOD计算提前计算Tableau Prep中的最新角色(对于非常大的数据集可能更好)或使用表calc Rank计算(更灵活和动态,如果您想让用户显示任意数量的最新角色),或者您可以使用自定义SQL中的窗口查询。剥猫皮的方法不止一种,但这相对容易,而且在除了非常大的数据集之外的所有数据集上都表现良好。

最新更新