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

DAX Calculate函数未按日期筛选返回预期结果排查

问题分析与解决方案

你的问题出在筛选上下文的作用范围上:

  • 卡片视觉对象没有逐行的日期筛选,所以MAX('Date'[Date])能正确取到切片器所选的最大日期,计算出的起止日期是对的。
  • 但图表(比如折线图/柱状图)的X轴绑定'Date'[Date]时,每个X轴的日期会生成独立的筛选上下文,此时MAX('Date'[Date])会取当前X轴点的日期,而非切片器的整体结束日期。这就导致每个数据点都在计算自己的过去12个月,而非基于切片器选定的统一时间范围,所以图表会显示超出预期的日期。

修改后的DAX度量值

Cases Total Current 12mo (Slicer) = 
VAR SelectedEndDate = CALCULATE(MAX('Date'[Date]), ALLSELECTED('Date'))
VAR EndDate = DATE(YEAR(SelectedEndDate), MONTH(SelectedEndDate), 1)
VAR StartDate = EDATE(EndDate, -11)
RETURN
    CALCULATE(
        SUM(Sales[Cases]),
        'Date'[Date] >= StartDate && 'Date'[Date] <= EndDate
    )

关键改动说明

  • 使用CALCULATE(MAX('Date'[Date]), ALLSELECTED('Date'))获取切片器选定的最大日期,这个值不受图表X轴的逐行筛选影响,保证起止日期始终基于切片器的统一范围。
  • 去掉原度量值中的FILTER('Date', ...),直接在CALCULATE的筛选参数中写日期条件,DAX会更高效地处理这种简单筛选逻辑。

修改后,图表中超出StartDate的X轴点会返回空白,只会显示目标12个月范围内的销量总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:28:23