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

如何用DAX获取切片器日期最近的记录并统计RAG评级

解决Power BI中按指标取最新RAG评级统计的问题

嘿,我来帮你搞定这个绩效报告里的RAG统计难题!你的核心需求很明确:对每个绩效指标(Ref),只取最接近但不晚于切片器日期的那条记录的RAG评级,然后统计各评级的数量,之前的度量值要么多统计了旧记录,要么没按每个指标独立计算,咱们来一步步解决它。

核心思路拆解

要实现这个需求,关键是先给每个指标锁定唯一的有效记录:

  1. 对每个指标,筛选出所有到期日<=切片器日期的记录,找到其中最晚的那个到期日
  2. 基于这个最晚到期日,提取对应指标的那条记录
  3. 最后统计这些有效记录里各RAG评级的数量

正确的DAX度量值

直接用这个度量值替换你之前的尝试:

RAG Count Correct = 
VAR SlicerDate = MAX(Dates[Day])
-- 第一步:按指标分组,获取每个指标符合条件的最晚到期日
VAR LastValidDates = 
    SUMMARIZE(
        FILTER(Data, Data[Data due] <= SlicerDate),
        Data[Ref],
        "LastDue", MAX(Data[Data due])
    )
-- 第二步:关联原始数据,筛选出每个指标的唯一有效记录
VAR ValidRecords = 
    NATURALINNERJOIN(
        Data,
        LastValidDates
    )
-- 第三步:统计有效记录中的RAG数量
RETURN
    COUNTAX(ValidRecords, Data[RAG])

度量值逐段解释

  • SlicerDate:获取日期切片器选中的最大日期,也就是你要查看的「截至日期」。
  • LastValidDates:用SUMMARIZE按Ref(指标)分组,先过滤掉到期日晚于切片器日期的无效记录,然后给每个指标取最晚的到期日,得到一张「指标+对应有效到期日」的表。
  • ValidRecords:用NATURALINNERJOIN把原始数据表和上面的「有效日期表」关联,这样就精准筛选出了每个指标唯一的有效记录——既不会漏,也不会多统计旧记录。
  • 最终返回:用COUNTAX统计这些有效记录里的RAG字段数量,配合饼图的「Rating」图例,就能自动拆分出红、黄、绿、未评级的占比。

为什么之前的度量值出问题?

  • 你之前的TestCountaxpt2用MINX找最小日期差的逻辑本身没问题,但ALL(Data)会清除上下文筛选,导致总计计算混乱,而且没有稳定锁定每个指标的独立计算逻辑。
  • RAGCount里用LASTDATE这个时间智能函数,它依赖日期表的上下文,当你在SUMMARIZE里使用时,容易受全局日期上下文干扰,不如直接用MAX(Data[Data due])更直接可靠。

验证效果

用你提到的切片器设为2020年1月3日的场景,这个度量值会:

  1. 给每个指标找到对应的最晚到期日(比如延迟的指标会取更早的到期日)
  2. 提取每个指标的唯一有效RAG记录
  3. 统计出2绿、2红、2未评级、1黄的正确结果,饼图也能完美展示各评级的占比

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:57:30