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

Excel Power Pivot中无日期格式源数据的DAX YtD度量值实现问询

解决方案:Excel Power Pivot 实现动态YtD本年累计度量值

无需转换日期格式的DAX度量值

利用你已有的Table 2(月份名称-数字映射表),可以直接通过月份数字实现动态累计,无需将月份转换为日期格式。修改后的YtD度量值如下:

Val. := SUM(Table1[Value])

YtD := 
CALCULATE(
    [Val.],
    FILTER(
        ALL('Table 2'),
        'Table 2'[Number] <= MAX('Table 2'[Number])
    )
)

度量值逻辑说明

  • ALL('Table 2'):清除当前透视表/筛选器中对Table 2的月份筛选,确保能获取全年的月份范围。
  • MAX('Table 2'[Number]):动态获取当前筛选范围内的最大月份数字(比如筛选2月时返回2,筛选2+3月时返回3)。
  • FILTER:保留所有月份数字小于等于上述最大数字的月份,从而实现从年初到筛选截止月的累计求和。

适配你的示例验证

  • 筛选2月时:MAX('Table 2'[Number])=2,累计1-2月数据:
    • Store 1 Sales YtD = 200+80=280,Costs YtD=100+20=120,与预期一致。
    • Store 2 仅2月有数据,YtD与当月值相同,符合预期。
  • 筛选2月+3月时:MAX('Table 2'[Number])=3,累计1-3月数据:
    • Store 1 Sales YtD=200+80+80=360,Costs YtD=100+20+30=150,与预期一致。

单月筛选场景的适配

上述度量值完全支持单月筛选场景,无需额外修改。当仅选择单个月份时,MAX('Table 2'[Number])就是该月的数字,自动累计从年初到该月的所有数据。

为什么你之前的YtD2不符合预期?

你之前的YtD2= calculate(Val., filter(Table2;Table2[Number]<=2))使用了固定的数字2,无法动态响应不同的筛选条件,替换为MAX('Table 2'[Number])即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:20:41