PowerBI中计算MAE出现无值错误的问题排查
问题原因排查与解决方案
核心问题
你的度量值在负值时段无结果,根源出在分母的筛选器写法错误:
DAX中直接将数值列作为筛选条件时,会自动将数值转换为布尔值——0会被判定为FALSE,非0数值判定为TRUE。因此你的分母代码CALCULATE ( COUNTROWS ( 'Forecast_1d' ), 'Forecast_1d'[GHI W/sqm] )实际作用是仅统计Forecast_1d表中GHI不为0的行数。而负值时段对应的Forecast_1d的GHI是0,这部分行被筛选排除,导致分母为0,DIVIDE函数返回BLANK,最终整个度量值在负值时段无结果。
修正方案
方案1:修正筛选器逻辑(推荐)
如果你的需求是统计Forecast_1d中GHI不为空的行数,将筛选器改为判断非空而非直接用列名:
MAE_1 = DIVIDE ( ABS ( AVERAGE ( 'STATION'[GHI W/sqm] ) - AVERAGE ( 'Forecast_1d'[GHI W/sqm] ) ), CALCULATE ( COUNTROWS ( 'Forecast_1d' ), NOT ISBLANK ( 'Forecast_1d'[GHI W/sqm] ) ) )
方案2:简化分母(如果对应时段必有Forecast行)
若负值时段的STATION数据已通过事实表正确关联到Forecast_1d的GHI=0行,可直接统计Forecast_1d的行数,无需额外筛选:
MAE_1 = DIVIDE ( ABS ( AVERAGE ( 'STATION'[GHI W/sqm] ) - AVERAGE ( 'Forecast_1d'[GHI W/sqm] ) ), COUNTROWS ( 'Forecast_1d' ) )
额外验证步骤
确认关联逻辑正确性:在报表中添加表格,展示负值时段的STATION[GHI W/sqm]、Forecast_1d[GHI W/sqm]以及COUNTROWS(Forecast_1d),验证是否有匹配到对应的Forecast行。
内容的提问来源于stack exchange,提问作者Sultry T.
相关产品推荐
相关产品推荐

