Power BI中含重复游戏名的CombinedDAX排名度量创建指导
Power BI中重复游戏名的最新发布游戏排名度量创建方案
针对需求——处理Dim Game表中重复游戏名,筛选每个游戏的最早发布日期并标记为MinDateFlag=1,同时对这些标记的游戏按发布日期倒序排名,以下是创建CombinedDAX度量的分步说明:
步骤1:标记每个游戏的最早发布日期
首先定义MinDateFlag变量,通过ALLEXCEPT函数保留当前游戏名称的上下文,计算该游戏的最小发布日期,将当前行发布日期与这个最小值对比,相等则标记为1(代表该记录是此游戏的最早发布版本),否则为0:
VAR MinDateFlag = IF( 'Dim Game'[Release Date] = CALCULATE(MIN('Dim Game'[Release Date]), ALLEXCEPT('Dim Game', 'Dim Game'[Game Name])), 1, 0 )
步骤2:对标记的最早发布游戏计算排名
接着定义RecentGamesRank变量,仅针对MinDateFlag=1的记录执行排名:
- 用
FILTER筛选出所有标记为1的游戏记录 - 使用
RANKX按发布日期(Release Date)降序排列,采用Dense排名模式(相同发布日期的游戏排名一致,后续排名不跳号) - 非标记记录返回
BLANK(),避免无效排名干扰结果
VAR RecentGamesRank = IF( MinDateFlag = 1, RANKX( FILTER('Dim Game', MinDateFlag = 1), 'Dim Game'[Release Date], , DESC, Dense ), BLANK() )
完整度量代码
将上述变量整合,返回最终排名结果:
CombinedDAX = VAR MinDateFlag = IF( 'Dim Game'[Release Date] = CALCULATE(MIN('Dim Game'[Release Date]), ALLEXCEPT('Dim Game', 'Dim Game'[Game Name])), 1, 0 ) VAR RecentGamesRank = IF( MinDateFlag = 1, RANKX( FILTER('Dim Game', MinDateFlag = 1), 'Dim Game'[Release Date], , DESC, Dense ), BLANK() ) RETURN RecentGamesRank
关键说明
ALLEXCEPT('Dim Game', 'Dim Game'[Game Name])确保计算最小发布日期时,仅保留当前游戏名称的筛选上下文,精准定位每个游戏的最早发布记录Dense排名模式适合需要连续排名的场景,若需跳过相同排名的序号,可改为Skip
内容的提问来源于stack exchange,提问作者Swathi Ganesh
相关产品推荐
相关产品推荐

