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

Power BI DAX需求:使指定日期与日期筛选器保持一致

解决DAX表达式无法筛选特定日期数据的问题

问题根源分析

原表达式存在两个核心问题:

  1. All('WO 3Years'[DATE])会清除事实表日期列的所有筛选,再结合DATESBETWEEN取年初到所选日期的范围,导致返回的是年初至今累计值,而非目标的单日数据。
  2. 重复定义DtSelected和EndDate变量,属于冗余代码,且没有利用好日期表的筛选上下文。

修正方案

方案1:直接获取选中日期的单日数据

如果需求是获取选中日期当天的Written $ TY总和,使用以下简化表达式:

= CALCULATE(
    SUM('WO 3Years'[Written $ TY]),
    'WO 3Years'[DATE] = SELECTEDVALUE(Dates[TRNDATE])
)
  • 直接通过日期匹配关联日期表的选中值与事实表日期,保留筛选上下文。
  • 移除冗余变量,逻辑更清晰。

方案2:检查模型关系有效性

若上述方案仍不生效,需确认模型关系:

  • 确保Dates[TRNDATE]与WO 3Years[DATE]建立了激活的一对多关系,且两个列的日期类型完全一致(避免文本格式日期与日期格式列不匹配)。

方案3:处理无选中日期的场景(可选)

如果需要在未选中日期时返回空值或默认值,可添加空值判断:

= VAR SelectedDate = SELECTEDVALUE(Dates[TRNDATE])
RETURN
    IF(
        NOT ISBLANK(SelectedDate),
        CALCULATE(
            SUM('WO 3Years'[Written $ TY]),
            'WO 3Years'[DATE] = SelectedDate
        ),
        BLANK() // 可替换为其他默认值,比如SUM('WO 3Years'[Written $ TY])
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:42:03