打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何填充Power BI矩阵中的空白?

经常会遇到这样的问题,如何对可视化的表格或者矩阵中出现的空白,进行向下填充数据?从PowerBI功能上来说,并没有这个设置,无法直接对可见的单元格数据进行操作。

但从数据的计算逻辑上并非不能实现,就是让空值等于上面最后一个非空数据,可以用DAX来完成这种填充。

以下面这个简单的数据为例:

因为并不是每天都有数据,所以如果用个连续的日期表作为矩阵的行,类型作为列,就变成了下面样式的表:

这样的矩阵是不是很常见?对于其中的空白如何填充完整呢?

先以向下填充为例,实际上就是,如果某天的数据是空值,就让它等于该日期之前的最后一个非空数据,建一个度量值,用DAX表达如下:

今日数量 = VAR curdate=MIN('日期表'[日期])RETURNCALCULATE( LASTNONBLANKVALUE( '日期表'[日期], [数量] ), '日期表'[日期]<=curdate)

主要是利用了DAX函数LASTNONBLANKVALUE的逻辑,这个函数通过对已排序的列对应的表达式求值,返回不为空的表达式的最后一个值。

上面的度量值的逻辑,就是对日期表中,先筛选小于等于当前日期的日期,对每一个满足条件的日期计算数量,返回最后一个有数据的日期所对应的数量,结果如下:

这就是向下填充的效果。

同理,如果想向上填充,也就是让空值等于之后日期的第一个非空的数据,可以用FIRSTNONBLANKVALUE来实现,它与LASTNONBLANKVALUE的用法完全一致,只是逻辑正好是相反的,返回第一个非空数据。

今日数量 = VAR curdate=MIN('日期表'[日期])RETURNCALCULATE( FIRSTNONBLANKVALUE( '日期表'[日期], [数量] ), '日期表'[日期]>=curdate)

向上填充的效果如下:

如果你也有类似的填充需求,可以试试用上面的思路来实现。

不过LASTNONBLANKVALUE和FIRSTNONBLANKVALUE也是一种迭代函数,如果你的数据量较大,应该谨慎使用这些函数,以免影响报告的性能。


新书上市:PowerBI商业数据分析

帮你从0到1,轻松上手PowerBI


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学会这20个Excel技能,你能节省几十倍时间
MySQL关于根据日期查询数据的sql语句
【MySQL】利用日期函数查询出当天所有的数据
仅需3步 | 让电子表格图表滚动起来
利用Power BI性能分析器,轻松导出大数据
Power BI中这么计算同期对比,我被业务怼了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服