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

PowerBI多科目数组构建与(Forecast-Act)/Forecast计算实现求助

解决PowerBI中(Forecast - Act)/Forecast的分类及总计计算问题

一、确认原始表结构正确性

原始表需包含以下核心字段:

  • 日期(Date):行维度字段
  • 分类(Category):拆分各分类的字段
  • 实际值(Act):实际数据列
  • 预测值(Forecast):预测数据列

如果你的表是类似如下结构,表结构(数组)即为正确:

DateCategoryActForecast
2024/01/01A80100
2024/01/01B120150
2024/01/02A95100

二、DAX度量值编写

1. 分类级偏差率计算

创建基础度量值,自动适配日期+分类的行上下文计算:

偏差率 = 
DIVIDE(
    SUM('表名'[Forecast]) - SUM('表名'[Act]),
    SUM('表名'[Forecast]),
    BLANK()  // 处理Forecast为0的场景,避免报错
)

2. 日期级总计偏差率

上述度量值已支持日期行的总计计算——总计行上下文为单个日期,SUM会自动汇总该日期下所有分类的Forecast和Act,得出(总Forecast-总Act)/总Forecast的结果,无需额外修改。

3. 全局总计适配(如需)

若要在视觉对象的全局总计行显示所有日期的总偏差率,可使用以下度量值清除分类筛选上下文:

偏差率_含全局总计 = 
VAR TotalForecast = CALCULATE(SUM('表名'[Forecast]), ALL('表名'[Category]))
VAR TotalAct = CALCULATE(SUM('表名'[Act]), ALL('表名'[Category]))
RETURN
DIVIDE(TotalForecast - TotalAct, TotalForecast, BLANK())

三、视觉对象配置步骤

  • 将「日期」字段拖至视觉对象的行区域
  • 将「分类」字段拖至行区域(置于日期下方,实现日期下展开分类的层级)
  • 将创建的「偏差率」度量值拖至值区域
  • 在视觉对象格式设置中,开启「总计」选项

四、常见问题排查

  • 之前用SUM+CALCULATE失败,多因上下文筛选错误:比如添加了不必要的筛选器,或未处理Forecast为0的场景(必须设置DIVIDE的第三个参数)
  • 若原始表是宽表结构(如Act_A、Forecast_A、Act_B等列),需先通过「逆透视列」功能转换为标准长表结构,才能正常计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:42