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

Tabular Editor时间智能计算组:上月与过去12个月无法同时正常显示

问题根源
  • 函数误用:你写的“过去12个月”用了SAMEPERIODLASTYEAR,这个函数返回的是去年同期的日期范围,并非你需要的“最近12个月区间”;而“上月”的PREVIOUSMONTH('Dim_Date'[Current_DT])会跟随筛选的日期上下文变化——当同时勾选“今日”和“今日之前”时,它会把所有筛选日期对应的上月全部提取出来,跨度可能从很早到当前上月,要是你的数据在这个大区间里没有有效聚合结果,自然就显示为空。
  • 筛选上下文冲突:同时选择“今日”+“今日之前”时,日期范围是所有≤今日的日期,原计算组的函数会基于这个大范围计算,而非你预期的“固定上月”“最近12个月”这两个精准区间。
修正后的计算组代码

上月(固定取当前月的上月全月)

CALCULATE (
    SELECTEDMEASURE (),
    -- 直接锁定今日所在月份的上月
    PREVIOUSMONTH ( DATE ( YEAR ( TODAY() ), MONTH ( TODAY() ), 1 ) )
)

或者用更直白的写法:

CALCULATE (
    SELECTEDMEASURE (),
    DATESBETWEEN (
        'Dim_Date'[Current_DT],
        -- 上月第一天
        EOMONTH ( TODAY(), -2 ) + 1,
        -- 上月最后一天
        EOMONTH ( TODAY(), -1 )
    )
)

过去12个月(取今日往前推12个月的所有日期)

CALCULATE (
    SELECTEDMEASURE (),
    DATESINPERIOD (
        'Dim_Date'[Current_DT],
        TODAY(),
        -12,
        MONTH
    )
)
额外优化技巧

要是你不想固定死“今日”,想让时间区间跟随报表中筛选的最大日期动态变化,把代码里的TODAY()替换成MAX('Dim_Date'[Current_DT])即可,这样不管筛选什么日期,都会自动基于最新的日期计算上月和过去12个月区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:26:05