PowerBI度量值问题:月度Forecast QTY日度分摊仅1号有值如何解决
月度预测值按日分摊的DAX修正方案
原度量值仅在每月1号返回数值,核心问题是CALCULATE参数顺序错误、SUMX逻辑未正确关联预测数量,以及日期匹配逻辑仅锁定每月第一天。以下是修正方案:
修正后的DAX度量值
Daily FCST = VAR CurrentMonthStart = STARTOFMONTH(Dates[Date]) VAR DaysInMonth = DAY(EOMONTH(CurrentMonthStart, 0)) VAR MonthlyTotal = CALCULATE( SUM(Forecasts[QTY]), Forecasts[Month] = CurrentMonthStart ) RETURN DIVIDE(MonthlyTotal, DaysInMonth, 0)
关键调整说明
- 用变量拆分逻辑,让代码更清晰,避免重复计算相同的日期值
- 正确匹配当前日期所在月份的预测数据:通过
STARTOFMONTH(Dates[Date])获取当前日期对应的当月第一天,和Forecasts表的Month字段(格式为M/1/YYYY)直接匹配 - 用
SUM(Forecasts[QTY])直接求和对应月份的总预测值,替代原错误的SUMX写法(原写法实际是统计符合条件的行数,而非求和数量) - DIVIDE的第三个参数设为0,确保无预测值时返回0而非空值,折线图不会出现断点
- 基于当月第一天计算月末天数,避免因日期上下文导致的天数计算错误
简化版写法
如果不需要变量拆分,也可以用更紧凑的代码:
Daily FCST = DIVIDE( CALCULATE( SUM(Forecasts[QTY]), Forecasts[Month] = STARTOFMONTH(Dates[Date]) ), DAY(EOMONTH(STARTOFMONTH(Dates[Date]), 0)), 0 )
内容的提问来源于stack exchange,提问作者Funk-E Guy
相关产品推荐
相关产品推荐

