Power BI数据建模:为什么无法建立一对多的关系?

教育   2024-09-10 12:15   河南  
PowerBI数据建模时,应该都碰到这样的问题,以案例模型中产品表和订单表通过产品名称来建立关系为例,当你想让产品表与订单表建立一对多的关系时,却弹出这样一条提示:

此关系的基数是多对多。仅在两列预期都不包含唯一值,且多对多关系的显著不同行为得到理解的情况下,才应使用此关系。

这个提示是提醒你该关系是多对多关系,并不是报错,如果你的数据结构的确是两个表的关联字段都有重复值,在理解多对多关系的情况下,也是可以直接创建这样的关系的。
但是如果你认为产品表的产品名称不含有重复值,想要可以建立一对多关系的,却无法建立,这时就要排查原因了,一般情况下,出现这个提示是由于下面两种情况:
1、产品表的产品名称字段含有空值
有空值的字段无法成为关系的“一”端,解决的办法就是检查数据源,把产品名称含有空值的行删掉,或者直接在PowerQuery中将这一列的空白项筛选出去。

2、产品表的产品名称字段含有重复值
虽然你感觉应该没有重复值,但是既然有这个提示,并且也确实不是空值造成的,那么就肯定有重复值。
可以去表格视图中,打开产品表,选中产品名称列来看看下方的提示:
表有13行,但是这一列只有12个非重复值,那就说明肯定有2行是相同的值。
如何知道哪个值有重复呢?如果数据量很少,可以一眼看出来,但是数据量大的话,只靠肉眼观察就效率太低了。
想找出来其实也并不难,只需要拉个表格,将产品表的产品名称拖拽两次放到表格里:

然后右键其中一个产品名称,聚合方式改为“计数”:

就可以在表格中直接看出哪些含有重复值:


知道了哪个有重复项以后,只需要去调整数据源,或者去PowerQuery中删除重复项,就可以建立一对多的关系了。

如果你之前建立了一对多的关系,但是数据更新后,一端表的关联字段出现了重复值或者空白值,也会导致刷新报错:

出现这种情况,先把该关系删掉,按照以上方式解决以后,再重新建立关系即可。

以上就是在用PowerBI建模时可能会遇到的问题,更多关于数据建模的问题可参考:

Power BI数据建模,你遇到的各种问题,原来可以这样轻松解决

Power BI建模的2个常见问题,你应该也遇到过




PowerBI星球的最新版内容合辑,值得你收藏学习:
「PowerBI星球」内容合集


如果你想深入学习Power BI,欢迎加入PowerBI星球学习社群,获取更多学习资源,和6k+ 深度学习者一起精进~

PowerBI星球
海量干货,帮你轻松上手 Power BI
 最新文章