基于Item1与Item2筛选,在Measure中获取第二个0值关联日期
获取第二次出现0值的日期(基于Item1&Item2分组)
样本数据
Date Item1 Item2 Percentage NCount 05/20/2023 T1 P1 100% 10 05/21/2023 T2 P2 90% 9 05/21/2023 T1 P1 90% 9 05/22/2023 T1 P1 80% 8 05/22/2023 T1 P1 0% 0 <--首次出现 05/24/2023 T1 P1 0% 0 <-- 需要获取的数据 05/24/2023 T2 P2 0% 0 <--首次出现 05/26/2023 T2 P2 0% 0 <-- 需要获取的数据
需求说明
基于Item1和Item2的组合筛选,在DAX度量值(Measure)中获取每组内第二次出现0(或0%)值对应的日期,用于在折线图中绘制垂直线。
解决方案(DAX度量值)
直接使用以下DAX代码实现需求,替换代码中的'表名'为你实际的数据表名称:
第二次出现0的日期 = VAR ZeroRecords = FILTER( ALLSELECTED('表名'), '表名'[NCount] = 0 || '表名'[Percentage] = 0% ) VAR RankedZeroRecords = ADDCOLUMNS( ZeroRecords, "出现顺序", RANKX( FILTER(ZeroRecords, '表名'[Item1] = EARLIER('表名'[Item1]) && '表名'[Item2] = EARLIER('表名'[Item2])), '表名'[Date],, ASC, DENSE ) ) RETURN MAXX( FILTER(RankedZeroRecords, [出现顺序] = 2), '表名'[Date] )
代码逻辑说明
ZeroRecords:筛选出所有NCount为0或Percentage为0%的记录,ALLSELECTED用于保留当前筛选上下文RankedZeroRecords:给每组(Item1,Item2)的零值记录按日期升序排名,DENSE参数确保排名连续无间隔- 最后通过
MAXX提取排名为2的记录对应的日期
注意事项
如果同一日期、同一(Item1,Item2)组合存在多条零值记录,该度量值会将此日期视为第二次出现的日期;若需区分同一天内的多条记录,可在RANKX中添加额外排序字段(如时间戳)。
内容的提问来源于stack exchange,提问作者Sudheer
相关产品推荐
相关产品推荐

