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

如何在DAX中实现基于当月日均成本的月末剩余天数成本预测?

解决方案:基于当月日均成本的月末预测DAX公式

直接给出满足需求的DAX度量值,分两种适用场景:

场景1:基于系统当前日期计算

CostsForecast = 
VAR CurrentMonthTotal = CALCULATE(SUM('Usage details'[costInBillingCurrency]), DATESMTD('Usage details'[date]))
VAR DaysElapsed = COUNTROWS(DATESMTD('Usage details'[date]))
VAR AvgDailyCost = DIVIDE(CurrentMonthTotal, DaysElapsed, 0)
VAR LastDayOfMonth = EOMONTH(TODAY(), 0)
VAR RemainingDays = DAY(LastDayOfMonth) - DAY(TODAY())
RETURN
CurrentMonthTotal + (AvgDailyCost * RemainingDays)

场景2:基于报表选择的日期计算(更灵活)

如果需要支持历史日期的预测分析,将系统日期替换为报表数据中的最大日期:

CostsForecast = 
VAR CurrentDate = MAX('Usage details'[date])
VAR CurrentMonthTotal = CALCULATE(SUM('Usage details'[costInBillingCurrency]), DATESMTD('Usage details'[date]))
VAR DaysElapsed = COUNTROWS(DATESMTD('Usage details'[date]))
VAR AvgDailyCost = DIVIDE(CurrentMonthTotal, DaysElapsed, 0)
VAR LastDayOfMonth = EOMONTH(CurrentDate, 0)
VAR RemainingDays = DAY(LastDayOfMonth) - DAY(CurrentDate)
RETURN
CurrentMonthTotal + (AvgDailyCost * RemainingDays)

公式拆解说明

  • CurrentMonthTotal:通过DATESMTD筛选当月截至指定日期的成本数据,计算累计总成本
  • DaysElapsed:统计当月已过的天数,确保与成本数据的日期范围完全匹配
  • AvgDailyCost:用当月总成本除以已过天数,DIVIDE函数自动处理除数为0的异常情况(如当月无数据时返回0)
  • LastDayOfMonth:使用EOMONTH函数快速获取当月最后一天的日期
  • RemainingDays:用当月最后一天的天数减去当前日期的天数,得到月末剩余天数

示例验证

按你给出的场景:3月23日,当月已产生成本23000美元,已过23天

  • 日均成本:23000 ÷ 23 = 1000美元
  • 剩余天数:31 - 23 = 8天
  • 预测总成本:23000 + (1000 × 8) = 31000美元,完全符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:02:41