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

如何修复返回空白的上一年上月DAYS OVER 3总和Power BI度量值?

问题分析与修正方案

原度量值返回空白的核心问题是日期匹配逻辑错误,直接用日期字段和月份/年份数字比较会导致筛选条件永远不成立,自然返回空白。以下是具体修正步骤和正确代码:

错误点拆解

  • 错误1:MasterDate[Date] = MONTH(TODAY()) - 1 —— Date是完整日期类型,不能直接和月份数字(如12)比较,需提取日期的月份部分再对比。
  • 错误2:MasterDate[Date] = YEAR(TODAY())-2 —— 同理,需提取日期的年份部分再对比。
  • 错误3:1月时MONTH(TODAY())-1会得到0,实际目标月份应为12,需修正这个逻辑。

修正后的度量值

KPI 10 TB NO Days Over 3 Last Month Previous Year = 
VAR CurrentMonth = MONTH(TODAY())
VAR TargetMonth = IF(CurrentMonth = 1, 12, CurrentMonth - 1)
VAR TargetYear = IF(CurrentMonth = 1, YEAR(TODAY()) - 2, YEAR(TODAY()) - 1)
RETURN
CALCULATE(
    SUM('KPI10'[DAYS OVER 3]),
    FILTER(
        ALL(MasterDate),
        MONTH(MasterDate[Date]) = TargetMonth && YEAR(MasterDate[Date]) = TargetYear
    )
)

修正说明

  1. 先定义变量存储当前月份、目标月份、目标年份,逻辑更清晰:
    • 若当前是1月,目标月份设为12,年份设为当前年份减2(如2024年1月对应2022年12月)
    • 其他月份,目标月份为当前月份减1,年份为当前年份减1
  2. 使用ALL(MasterDate)清除日历表的现有筛选,确保筛选范围覆盖整个日历表
  3. 在FILTER中用&&同时匹配目标月份和年份,替代原代码中两个独立FILTER的冗余写法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:02:42