使用USERELATIONSHIP实现两表之间多个关系的调用

​在Power Pivot模型中,两表之间可以建立多个关系,但是只能有一个关系是处于激活(active)状态的。今天我们通过一个常见案例来看一下如何通过USERELATIONSHIP函数实现两表之间多个关系的调用。

下面是销售记录表,为方便大家理解,源文件只有4行数据。

使用USERELATIONSHIP实现两表之间多个关系的调用_第1张图片

大家注意[销售日期][送货日期]的关系。有些情况下,比如1月27日卖出去的100台商品,送货日期是在2月份的2月1日。

将数据导入模型并通过[销售日期]建立与日期表的关系:

使用USERELATIONSHIP实现两表之间多个关系的调用_第2张图片

创建度量值:

售出数量:=SUM([销售数量])

生成数据透视表如下:

使用USERELATIONSHIP实现两表之间多个关系的调用_第3张图片

假设此时我们需要在报告中加入送货数量,用来计算每个月送出的货物数量。请查看销售记录表,在我们的数据里,1月份的售出数量是300,但送货数量是50台。由于送货数量要基于送货日期来计算,这和之前的售出数量是冲突的。如果不通过Power Pivot的USERELATIONSHIP,此种情况在Excel里很难解决。

首先,我们需要通过[送货日期]来创建和日期表的第二个关系(下图中虚线的关系)。

使用USERELATIONSHIP实现两表之间多个关系的调用_第4张图片

虚线代表未激活。在“管理关系“窗口看下此时的模型关系。销售记录和日期表之间存在2个关系,其中与[销售日期]关联的是激活状态,与[送货日期]关联的是未激活状态。

使用USERELATIONSHIP实现两表之间多个关系的调用_第5张图片

接下来我们通过USERELATIONSHIP调用该未激活关系进行送货数量的计算:

送货数量:=CALCULATE('销售记录'[售出数量],USERELATIONSHIP('销售记录'[送货日期],'日期表'[日期]))

USERELATIONSHIP需要2个参数,分别是所调用关系的多端和一端。

最终的计算结果:

使用USERELATIONSHIP实现两表之间多个关系的调用_第6张图片

送货数量被准确的计算出来,这样我们就通过USERELATIONSHIP实现了两表之间多个关系的使用。

特别提示:

USERELATIONSHIP所调用的关系必须在模型中实际存在(哪怕是未激活关系都行)。

USERELATIONSHIP需要的2个参数必须准确输入所调用关系的多和一端。

USERELATIONSHIP 只能用在采用筛选器作为参数的函数中。例如:CALCULATE、CALCULATETABLE。

这就是我们今天的分享内容,更多Power Pivot DAX函数的用法请参考我们的视频课程- Excel Power Pivot数据建模分析(进阶篇)。


如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”

​长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、Power Pivot相关文章、资讯。欢迎小伙伴儿们转发分享~

你可能感兴趣的:(使用USERELATIONSHIP实现两表之间多个关系的调用)