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

基于双日期的DAX度量开发:按CYCLE_TYPE规则获取PERIOD内QTY

基于双日期逻辑的DAX度量实现(FORECAST)

这里直接给出满足需求的DAX度量实现:

FORECAST = 
VAR CurrentPeriod = SELECTEDVALUE('Table'[PERIOD])
VAR MaxCycleDateInPeriod = 
    CALCULATE(
        MAX('Table'[CYCLE]),
        ALL('Table'),
        'Table'[PERIOD] = CurrentPeriod
    )
RETURN
    SWITCH(
        TRUE(),
        SELECTEDVALUE('Table'[CYCLE_TYPE]) = "CURRENT",
            CALCULATE(
                SUM('Table'[QTY]), -- 若单条记录对应唯一QTY,可替换为MAX('Table'[QTY])
                'Table'[PERIOD] = CurrentPeriod
            ),
        SELECTEDVALUE('Table'[CYCLE_TYPE]) = "OTHER",
            CALCULATE(
                SUM('Table'[QTY]), -- 同上,根据实际数据结构调整聚合函数
                'Table'[PERIOD] = CurrentPeriod,
                'Table'[CYCLE] = MaxCycleDateInPeriod
            ),
        BLANK() -- 处理未定义的CYCLE_TYPE场景
    )

关键逻辑说明:

  • 变量初始化:
    • CurrentPeriod:捕获当前上下文选中的PERIOD日期值,确保后续筛选基于当前周期
    • MaxCycleDateInPeriod:计算当前PERIOD范围内的最大CYCLE日期,通过ALL('Table')清除额外上下文筛选,保证取到的是整个周期的最大值
  • 分支处理:
    • 当CYCLE_TYPE为"CURRENT"时,直接聚合当前PERIOD对应的所有QTY值
    • 当CYCLE_TYPE为"OTHER"时,仅筛选当前PERIOD中CYCLE日期为最大值的记录,再聚合对应QTY
    • 默认返回BLANK(),避免因未匹配的CYCLE_TYPE导致错误输出

适配提示:

  • 如果每个PERIOD+CYCLE组合对应唯一QTY值,将SUM替换为MAX或MIN更合理
  • 若PERIOD是日期区间而非单个日期,需调整CurrentPeriod的获取逻辑,比如用VALUES('Table'[PERIOD])配合区间判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:52:21