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

DAX计算列实现按ClientID分组、重复日期按ID排序的累计求和

DAX 按分组多字段排序累计运行总计计算列解决方案

问题原因

原有代码仅对日期做了小于等于的筛选,没有覆盖同日期下按ID从小到大累加的规则,会导致同一ClientID同日期的所有行得到的累计值完全相同,不符合需求。

正确DAX计算列代码

Running Sum = 
// 存储当前行的三个关键维度值,避免上下文转换偏差
VAR CurrentClientID = TBL[ClientID]
VAR CurrentDate = TBL[Date]
VAR CurrentID = TBL[ID]
RETURN
CALCULATE(
    SUM(TBL[Amount]),
    // 限定仅统计同ClientID的行
    TBL[ClientID] = CurrentClientID,
    // 筛选符合排序规则的行:要么日期更早,要么同日期且ID小于等于当前行ID
    TBL[Date] < CurrentDate
        || (TBL[Date] = CurrentDate && TBL[ID] <= CurrentID)
)

逻辑说明

  • 变量提前存储当前行的ClientID、日期、ID,解决行上下文转筛选上下文时的取值偏差问题
  • 第一层筛选限定累加范围仅为当前行所属的ClientID分组
  • 第二层筛选实现双重排序规则:所有日期早于当前行的记录全部纳入累加;同一日期下仅ID小于等于当前行ID的记录纳入累加,完美匹配要求的排序累加规则

结果验证

以ClientID=2、日期为07/01/2021的三行记录为例:

  • ID=3的行:累计范围为03/01的100、06/01的50、自身的50,合计200,符合预期
  • ID=7的行:在上述基础上累加ID=7的100,合计300,符合预期
  • ID=9的行:在上述基础上累加ID=9的200,合计500,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:10