You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:27:19