前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为啥用去重构造的单号表,建表间关系时仍然提示多对多,这明显是唯一值啊!|PBI实战

为啥用去重构造的单号表,建表间关系时仍然提示多对多,这明显是唯一值啊!|PBI实战

作者头像
大海Power
发布2023-09-09 14:56:41
2300
发布2023-09-09 14:56:41
举报

这是星球里一位星友的提问:

其中的发货单表,是从某个订单表里通过values函数构建的唯一值表:

但是,当用这个表去和其他事实表构建表间关系时,会被识别为多对多:

为什么会这样?

经检查发现,用values函数构建的这个发货单号表,中间存在空白内容,也就是说,原来的事实表里本身就存在空白(没有发货单号)的情况!

这里的多对多正是这个空内容导致的!

有的朋友可能会说,空内容本身不应该也是一个唯一“值”吗?可以和事实表里的订单号为空的内容关联?

但是,在DAX里,这不可以,因为,会存在歧义,当存在空内容时,无法建立一对多的关系。

为什么呢?从“原理”上来说,你可以这么理解,在Power BI(或说Power Pivot)的数据模型里,会自动给一端的表添加一个“隐藏的空值”,用于匹配多端表里无法匹配到的内容,而你的表里本身又有一个空值,从而导致了有“多个空值”的存在。

那么,这个问题怎么解决呢?

其实也很简单,通过筛选去掉空值即可:

代码语言:javascript
复制
FILTER(
    VALUES('应收账款U8T+'[发货单号]),
    '应收账款U8T+'[发货单号]<>blank()
)

此前,我还曾经发过一篇也是关于表间关系构建存在类似问题的文章:《明明删除了重复项,为什么还是说有重复值?》,借此机会做个引用,供大家一并参考。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档