excel 一对一关系在PowerPivot中无效

oalqel3c  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(476)

使用的Excel版本:2016
我有2个Excel表(HR 1和HR 2)在这两个表我有一个共同的列,这是emp id。Emp id范围从1到50000。
现在,我在power query的帮助下连接了这两个数据,并且使用only link并将其加载到数据模型中。在将两个文件加载到数据模型后,我使用power pivot连接两个表之间的关系。由于某种原因,关系显示为1对多,而不是一对一。enter image description here
现在,一开始我忽略了它,我试图使用1列(HR 1中的“消耗”)和(HR 2中的月薪)创建透视表。但是我收到了两种情况下相同的答案,这当然是不正确的。enter image description here

**这是我如何试图解决基于我对关系的不那么深刻的理解:**我试着在互联网上搜索它,我发现很少有博客涵盖一对一的关系和权力支点,最终我无法找到任何可以给予一些提示如何解决它。

在过去,我观察到在powerBI中创建一对一关系时,双向过滤是强制性的,所以我想创建一个桥接表并将其与两个表连接,希望它将充当双向关系,并且我的一对一关系可能会工作,但我再次无法获得正确的结果。
请建议我如何做到这一点。
PS:我知道我可以简单地使用vlookup并合并两个表,而不使用powerquery/powerpivot,但我正在学习这个主题,并想知道如何使用power query/power pivot来做到这一点。欢迎任何建议。附加(gdrive链接)我工作过的文件和源文件。
https://drive.google.com/drive/folders/1KrQ47Sep9tPaSxEA_7sY1h6-9hL_dyZT?usp=share_link
问候基尚

0yg35tkg

0yg35tkg1#

您说的没错,您的两个表之间的关系在技术上是一对一的。不幸的是,与Power BI不同,Power Pivot不支持一对一关系。
也就是说,在这种情况下,解决方案非常简单。首先要注意的是,您在这里不需要桥接表。第二要注意的是,由于Power Pivot不支持一对一关系,因此它必须将其中一个表声明为关系的“多”侧,另一个表声明为“一”侧,即使如前所述,这种关系是严格的一对一
然而,在一对一关系中,选择位于“多”侧的表会产生至关重要的差异。在您的例子中,由于最终结果是一个包含值的数据透视表(MonthlyIncome),来自按字段筛选的 HR_2 表(* 损耗 *),并且由于过滤仅从‘一’侧传播到‘多’侧,必须是 HR_1 表位于关系的‘一’侧的情况。
我相信,当通过Create Relationship对话框定义关系时,您在左侧定义的表将成为关系的“多”侧,因此这就是您应该在这里设置的方式。
当然,如果您的数据透视表只包含 HR_2 表中的值,并由 HR_1 表中的字段进行过滤,那么这一切都非常好。如果您还需要相反的情况,即 HR_1 表中的值由 HR_2 表中的字段进行过滤,那么这种设置将是不可能的。实际上,如果是这种情况,那么我建议您在Power Query中将两个表合并为一个更大的表,这也将解决您的设置在这里很大程度上不合适的更广泛的问题,因为您不应该在两个大型事实表之间创建关系。

相关问题