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

如何在Power BI中实现自定义每日排名?DAX公式问题求助

问题分析与解决方案

你的需求是按日期分组,对Points_SA降序进行跳跃式排名(相同分数的项共享排名,后续名次跳过已占用的位置),但当前DAX公式存在两个核心问题:

  1. 使用ALL(date)移除了日期的上下文筛选,导致排名计算跨所有日期,而非按单个日期独立计算。
  2. 指定了Dense参数,生成的是密集排名(相同分数不跳过后续名次),与你需要的跳跃式排名不符。

修正后的DAX度量值

Rank_SA_pt =
RANKX(
    CALCULATETABLE(
        ALL('Table'[Market]), -- 保留当前日期上下文,移除市场的筛选
        'Table'[Date] = MAX('Table'[Date]), -- 限定为当前日期
        [Points_SA] <> BLANK(), -- 排除空值
        [Points_SA] <> 0 -- 排除0值
    ),
    [Points_SA], -- 排名依据的度量值
    , DESC, Skip -- 降序,跳跃式排名(Skip为默认参数,可省略)
)

关键说明

  • CALCULATETABLE(ALL('Table'[Market]), ...):确保在当前日期的上下文内,对所有市场的Points_SA进行排名,既保留了日期的筛选,又允许市场维度自由计算。
  • Skip参数:实现你需要的跳跃式排名逻辑,比如4/16日的3个0.6分项,前面有4个更高分数的项,因此它们的排名为5,与你的Output列一致。
  • 如果你的表名不是'Table',请替换为实际的表名。

内容的提问来源于stack exchange,提问作者nard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:18:13