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

基于ParallelPeriod函数实现截至指定日期的去年同期累计聚合指标计算的技术问询

计算截至平行日期的同期累计聚合指标

针对你需要将聚合指标计算为截至平行日期的同期累计值的需求,我整理了清晰的逻辑和实现代码:

核心需求与场景示例

  • 核心目标:对指定日期范围内的每个日期,计算去年同期时段从起始日到该日期平行日的指标累计和
  • 场景举例:当选择日期范围2021-01-01至2021-02-07并按日聚合时:
    • 2021-01-01对应的聚合值 = 去年平行日2020-01-01的指标值(仅取当日,因为是时段第一天)
    • 2021-01-05对应的聚合值 = 去年同期时段起始日2020-01-01到2020-01-05的指标累计求和值

实现逻辑

本质是通过MDX函数定位到去年的平行日期区间,再对目标指标求和:

  1. 捕获当前聚合上下文的日期(或选中的日期范围)
  2. 使用ParallelPeriod函数将日期向前偏移1年,得到对应的去年平行日期
  3. 定义从去年同期时段起始日到当前日期平行日的区间,对该区间内的指标执行求和

示例MDX代码

[date selected] EXISTING [Report date].[Date YQMD].[Day] 
sum( 
  { 
    ParallelPeriod( [Report date].[Date YQMD].[Year], 1, HEAD([date selected],1).Item(0) ) 
    : 
    ParallelPeriod( [Report date].[Date YQMD].[Year], 1, TAIL([date selected],1).Item(0) ) 
  }, 
  [Measures].[TTV]
)

代码细节解释

  • [date selected] EXISTING [Report date].[Date YQMD].[Day]:确保在当前选中日期的上下文下,按日维度进行聚合计算
  • ParallelPeriod( [Report date].[Date YQMD].[Year], 1, <date> ):将输入日期向前偏移1年,精准定位去年的平行日期
  • HEAD([date selected],1).Item(0):提取选中日期范围的起始日,作为去年同期区间的起点
  • TAIL([date selected],1).Item(0):提取当前聚合行的目标日期(按日聚合时,每行对应单个日期),作为去年同期区间的终点
  • sum(..., [Measures].[TTV]):对上述去年同期区间内的TTV指标执行累计求和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:57:34