Power BI需求:无销售数据日期仍需显示逐日累计销售收入
解决Power BI逐日累计销售收入空日期显示问题
步骤1:创建完整日期表(日历表)
销售表的日期存在缺失,必须依赖一张连续无断档的日期表来覆盖所有需要展示的日期。用DAX生成:
日期表 = CALENDAR( DATE(2019,1,1), -- 按需调整起始日期 DATE(2019,1,31) -- 按需调整结束日期 )
生成后可按需添加年、月、日等辅助列,方便后续筛选。
步骤2:建立表间关系
在数据模型视图中,将日期表的「日期」列与销售表的「销售日期」列建立一对多关系(日期表为一端,销售表为多端)。
步骤3:编写累计销售收入度量值
用DAX实现空日期自动继承上一日累计值的逻辑:
逐日累计销售收入 = VAR 当前日期 = MAX('日期表'[日期]) VAR 累计值 = CALCULATE( SUM('销售表'[销售收入]), FILTER(ALL('日期表'), '日期表'[日期] <= 当前日期) ) RETURN IF(累计值 = BLANK(), CALCULATE([逐日累计销售收入], DATEADD('日期表'[日期], -1, DAY)), 累计值)
也可使用更简洁的LASTNONBLANKVALUE写法:
逐日累计销售收入 = VAR 所有日期 = ALL('日期表'[日期]) VAR 当前累计 = CALCULATE( SUM('销售表'[销售收入]), FILTER(所有日期, '日期表'[日期] <= MAX('日期表'[日期])) ) RETURN IF( 当前累计 = BLANK(), LASTNONBLANKVALUE( FILTER(所有日期, '日期表'[日期] < MAX('日期表'[日期])), [逐日累计销售收入] ), 当前累计 )
步骤4:可视化配置
在报表中选择日期表的「日期」列作为横轴,将上述度量值放入值区域,即可实现空日期显示上一日累计值的效果。
内容的提问来源于stack exchange,提问作者Aynar
相关产品推荐
相关产品推荐

