Power BI中MoM%卡片显示0%,需展示最新月度环比
Power BI月度环比(MoM%)卡片显示0%的问题解决
问题分析
当前度量值显示0%而非预期的-83%,核心原因可能是:
DATEADD('IA_TCALENDAR_DATES'[CALENDAR_D], 0, MONTH)未改变上下文,__CURR_MONTH等同于直接调用[TTL BELOW FLR],但DATEADD(-1, MONTH)未正确获取上月数据(比如日期表未标记为日期表、上月数据缺失或上下文筛选逻辑冲突)。- 若
__PREV_MONTH与__CURR_MONTH数值相等,或__PREV_MONTH为0,DIVIDE会返回0。
修正方案
步骤1:确保日期表标记为日期表
选中 IA_TCALENDAR_DATES 表,点击建模选项卡 → 标记为日期表 → 标记为日期表,时间智能函数依赖此设置生效。
步骤2:替换度量值为以下代码
TTL BELOW FLR MoM% = VAR __CURR_MONTH = [TTL BELOW FLR] VAR __PREV_MONTH = CALCULATE([TTL BELOW FLR], PREVIOUSMONTH('IA_TCALENDAR_DATES'[CALENDAR_D])) RETURN DIVIDE(__CURR_MONTH - __PREV_MONTH, __PREV_MONTH, 0)
可选:保留错误提示(调整判断逻辑)
若需限制仅通过日期层级筛选单个月份,可使用以下版本:
TTL BELOW FLR MoM% = IF( NOT ISDATESELECTED('IA_TCALENDAR_DATES'[CALENDAR_D]), ERROR("请通过日期层级选择单个月份查看环比数据"), VAR __CURR_MONTH = [TTL BELOW FLR] VAR __PREV_MONTH = CALCULATE([TTL BELOW FLR], PREVIOUSMONTH('IA_TCALENDAR_DATES'[CALENDAR_D])) RETURN DIVIDE(__CURR_MONTH - __PREV_MONTH, __PREV_MONTH, 0) )
验证步骤
- 单独筛选2023年1月,查看
[TTL BELOW FLR]的数值(记为A)。 - 单独筛选2023年2月,查看
[TTL BELOW FLR]的数值(记为B)。 - 手动计算
(B - A)/A,确认结果为-83%,确保基础度量值逻辑正确。
内容的提问来源于stack exchange,提问作者BeanBagAnalytica
相关产品推荐
相关产品推荐

