Tableau技术问询:如何按Change ID筛选显示最近两个Entry Date
解决Tableau中保留每个Change ID最近两个Entry Date的问题
问题根源
你之前用的公式RANK(MAX({FIXED [Change ID]:max([Entry Date])}))逻辑有误:它先提取每个Change ID的单个最大日期,再对这些日期做全局排名,自然只能选出全局范围内日期最新的2个Change ID,而不是每个Change ID自身的最近两个日期。
正确解法
创建一个计算字段,在每个Change ID的分组内对Entry Date按时间倒序排名:
RANK([Entry Date], 'desc') FIXED [Change ID]
FIXED [Change ID]:限定排名计算仅在当前Change ID的范围内进行'desc':按日期从新到旧排序,确保最新的日期排名为1,次新为2
筛选应用
把这个计算字段拖到「筛选器」面板中,勾选1和2,就能保留每个Change ID对应的最近两个Entry Date了。
特殊情况处理
如果同一个Change ID下存在重复的Entry Date(比如同一天有多条修改记录),RANK会给相同日期分配相同排名。如果需要保留所有重复的最近日期,也可以用RANK_DENSE替代RANK,逻辑一致,但排名不会跳过数字(比如两个相同的最新日期都会排1,下一个不同日期排2)。
内容的提问来源于stack exchange,提问作者Truex
相关产品推荐
相关产品推荐

