简介
大学自学PowerBI。课程资源来自于B站up主@孙兴华zz。在学习第8节课程ALLNOBLANKROW核对数据时出现逻辑难以理解的情况,大量弹幕也出现类似情况。于是整理详细笔记用于回顾知识点和提供解决思路。
目的
查找子表中存在而父表不存在的维度数据,使用ALLNOBLANKROW实现功能,应用场景:货架未上架的商品出现在销售单里,需要找出未登记的商品。
测试
分别使用ALL、ALLNOBLANKROW函数观察数据。
代码
![](https://i-blog.csdnimg.cn/blog_migrate/331874af27d3f7bf95cc3b63e0f7e0c3.png)
商品表1
![](https://i-blog.csdnimg.cn/blog_migrate/01cfd3c8125aec8e9c42e80a6f011fcf.png)
销售表2
总销量 = SUM('销售表'[销售数量])
ALL总销售量 = CALCULATE([总销量],ALL('商品表'))
ALLNOBLANKROW总销售量 = CALCULATE([总销量],ALLNOBLANKROW('商品表'))
测试ALLNOBLANKROW总销售量 = CALCULATE([总销量],ALLNOBLANKROW('销售表'))#表不能去重
建立好度量值之后带入矩阵观察。图1
我们可以观察到使用ALLNOBLANKROW的度量值不会出现父表里没有出现的元素
![](https://i-blog.csdnimg.cn/blog_migrate/e29650defaca3a7115d80a7985cf360f.png)
矩阵图1
![](https://i-blog.csdnimg.cn/blog_migrate/048e18341d32d020e6f818e625b97e9e.png)
矩阵图2
回答为什么不能用’销售表‘:直接用销售表无法正常返回数字,因为ALLNOBLANKROW是列去重。如图2
结论
ALLNOBLANKROW的用法可以简单概括为复制表+列去重。
课程链接link