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

如何在DAX中引用前值计算理想速率且避免循环依赖

需求与问题描述

enter image description here

我想要基于之前理想速率的总和来计算理想速率,规则如下:

  • 第一行的理想速率始终为[New Orders] / [Hours Remaining],例如本示例中1322/8=165.25。
  • 从第2行到第n行,理想速率应为([New Orders]的累计总和 - 之前所有行[Ideal Rates]的累计总和)/ [Hours Remaining],示例:
    • 第2行:((1322 + 0) - 165.25) / 7 = 165.25
    • 第3行:((1322 + 0 + 38) - (165.25 + 165.25)) / 6
    • 第4行:((1322 + 0 + 38 + 5) - (165.25 + 165.25 + 171.58)) / 5

我难以找到正确引用前一行速率来调整累计订单的方法。

现有DAX代码

New Orders = DistinctCount(Orders[Order_Number])
Hours Remaining = DATEDIFF(MAX('Time'[Time]),CALCULATE(MAX('Time'[Time]),REMOVEFILTERS('Time'[Time])),HOUR)
Ideal Rate = 

VAR Time = CALCULATE(MIN('Time'[Time]),ALLSELECTED('Time'))
VAR CurrentRowRate = DIVIDE([New Orders],[Hours Remaining],0)
VAR CumOrders = 
    CALCULATE(
        [New Orders],
        WINDOW(0,ABS,0,REL,ALLSELECTED('Time'[Time]))
    )
VAR CumPriorRowRates = 
    CALCULATE(
        CumOrders - CurrentRowRate,
        WINDOW(0,ABS,-1,REL,ALLSELECTED('Time'[Time]))
    )
VAR AdjustedCurrentRowRate = 
    CumPriorRowRates  / [Hours Remaining]
RETURN

IF(MAX('Time'[Time]) = Time,
   CurrentRowRate,
   AdjustedCurrentRowRate)

R实现代码(已验证逻辑)

我已通过R可视化工具迭代引用之前的累计总和实现了该逻辑,但理想情况下我希望用DAX实现。

for (i in 1:nrow(Orders_By_Hour)) {
  
  Orders_By_Hour$Ideal_Rate[i] <- ifelse(Orders_By_Hour$Time[i] == min(Orders_By_Hour$Time),
      Orders_By_Hour$Cum_Orders[i]/Orders_By_Hour$Hours_Remaining[i],
      (Orders_By_Hour$ending_sum[i-1]+Orders_By_Hour$New_Orders[i])/Orders_By_Hour$Hours_Remaining[i])
  
  Orders_By_Hour$ending_sum[i] <- ifelse(Orders_By_Hour$Time[i] == min(Orders_By_Hour$Time),
                              Orders_By_Hour$Cum_Orders[i] - Orders_By_Hour$Ideal_Rate[i],
                              Orders_By_Hour$ending_sum[i-1]+Orders_By_Hour$New_Orders[i] - Orders_By_Hour$Ideal_Rate[i])
  
}

参考资料

参考的Stack Overflow文章:

  • Bring previous day value as starting point for next day in a measure within Power BI
  • Self-reference a column in DAX or Power Query

参考的YouTube视频:

  • SOLVE Circular Dependency issues in Recursive Inventory problems | MAGIC of WINDOW() + OFFSET()
  • Microsoft Hates Greg - Previous Value ("Recursion") in DAX

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:57:07