You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何为缺失/空行补零并修复Power BI累积图表问题?

问题:Power BI累积图表异常,缺失月份补零及累积计算修复

背景与问题

累积图表显示异常,核心原因是部分疾病领域的部分月份无数据行(例如'Neurological'领域缺失10月、2月、3月数据),导致图表出现断裂或空白段。

已尝试操作

  1. 创建包含所有疾病领域和月份的维度表,与数据表PISheetforDiseaseArea建立一对多关系
  2. 制作度量值标记缺失行:
    NoRecrt = INT(ISEMPTY(PISheetforDiseaseArea))
    
  3. 尝试补零但未生效:
    Recrt = IF([NoRecrt] = 1, 0, [Count])
    
  4. 当前累积计算度量值Cumulativebydisease1无法正常处理缺失行:
    Cumulativebydisease1 =  
        VAR _lastdateinscheduletable =      
        CALCULATE ( MAX ( PISheetforDiseaseArea[ConcatDiseaseMonth]  ), REMOVEFILTERS () ) 
        RETURN 
        CALCULATE (      
          SUM ( PISheetforDiseaseArea[Count] ),      
          FILTER(ALL( PISheetforDiseaseArea), PISheetforDiseaseArea[DiseaseArea] = MAX(PISheetforDiseaseArea[DiseaseArea])&&PISheetforDiseaseArea[ConcatDiseaseMonth]<=MAX(PISheetforDiseaseArea[ConcatDiseaseMonth]) && MIN(PISheetforDiseaseArea[ConcatDiseaseMonth]) <= _lastdateinscheduletable 
        )
    

需求

实现缺失月份自动补零,同时让累积计算度量值正常覆盖所有疾病-月份组合。


解决方案

步骤1:修复补零度量值

Recrt依赖的[Count]在空行上下文会返回空白,直接用SUM聚合并判断空值即可,无需依赖NoRecrt

Recrt = 
VAR CurrentCount = SUM(PISheetforDiseaseArea[Count])
RETURN IF(ISBLANK(CurrentCount), 0, CurrentCount)

步骤2:重构累积计算度量值

原度量值直接过滤事实表,无法识别维度表中的缺失月份。需基于维度表的疾病领域和月份进行计算,确保覆盖所有预设组合:

假设你的维度表名为Dim_DiseaseMonth,包含DiseaseAreaConcatDiseaseMonth字段,调整后的累积度量值:

Cumulativebydisease_Fixed = 
VAR CurrentDisease = SELECTEDVALUE(Dim_DiseaseMonth[DiseaseArea])
VAR CurrentMonth = SELECTEDVALUE(Dim_DiseaseMonth[ConcatDiseaseMonth])
-- 筛选当前疾病领域下所有小于等于当前月份的维度组合
VAR AllPriorMonths = 
    FILTER(
        ALL(Dim_DiseaseMonth),
        Dim_DiseaseMonth[DiseaseArea] = CurrentDisease &&
        Dim_DiseaseMonth[ConcatDiseaseMonth] <= CurrentMonth
    )
RETURN
CALCULATE(
    [Recrt],  -- 调用修复后的补零度量值
    AllPriorMonths
)

关键注意事项

  1. 图表的坐标轴/行必须使用**维度表Dim_DiseaseMonth**的字段,而非事实表字段,才能显示所有疾病-月份组合
  2. ConcatDiseaseMonth需为可排序格式(如YYYY-MM),确保累积计算的时间顺序正确
  3. 若维度表无ConcatDiseaseMonth,可通过FORMAT(MonthColumn, "YYYY-MM") & "-" & DiseaseArea生成,或单独维护月份排序字段

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

火山引擎 最新活动