Power BI:机会模型(关联3个表)

时间:2018-03-02 21:38:44

标签: powerbi dax

我正试图创造一个&#34;机会&#34;计算模型,但我得到的输出结果不准确。样品问题是麦当劳和汉堡王在各个地区销售食品,一些地区在该地区都有BK和McD,他们都销售类似的食品类型,但有些人在这个区域都有,但他们可以“实现相同的订单类型(例如邮政编码10049,其中BK和McD都存在,但McD出售汉堡和BK出售沙拉;因此BK可以覆盖该区域,但不能满足潜在的客户需求。)< / p>

在示例电子表格中,有三个选项卡,第一个是McD销售,第二个是BK销售,第三个是在McD&B和BK的订单之间协调命名约定。

我首先将表与关系联系起来。我想我需要通过Zip将McD连接到BK,然后将McD连接到Crossreference。由于PBI中的多对多关系限制,我强制创建具有拉链和订单名称的唯一值的查找表。看起来有点乱,但做的工作。问题是我可以查找邮政编码连接,但不能查找潜在订单的销售情况。

关系: enter image description here

这是一个很明显的例子,说明事情是如何运作的。邮政编码10048总结了McD的销售额并为每个BK订单类型显示它。安格鲁斯的预期产量为5美元,洋葱汤为3美元,总共为8美元。 enter image description here

如果我尝试将交叉引用BK订单名称连接到BK订单,那么我会出现歧义错误。 enter image description here

电子表格数据文件: https://docs.google.com/spreadsheets/d/1WM9OD7voApax7uNJ6_bJk75zfj9FQN9tSf2jU1hXl7c/edit?usp=sharing

Excel和Power BI文件:https://drive.google.com/drive/folders/1hOdP5ZglHcqo_dk2GMlXr6Xmc5Ywm6nj?usp=sharing

1 个答案:

答案 0 :(得分:0)

我不认为你能够完全按照自己的意愿去做。它基本上相当于在两个表之间创建多个关系。 Power BI不会让你这样做。

但是有一些解决方法。例如,您可以使用计算列将McD[order]值移入BK表:

MDorder = MAXX(FILTER(Crossreference, Crossreference[BK] = BK[order]), Crossreference[McD])

这将允许您使用查找或类似的最大类型函数从McD表中提取价格:

Price = LOOKUPVALUE(McD[price], McD[order], BK[McD Order], McD[Zip], BK[Zip])

Price = MAXX(FILTER(McD, McD[Zip] = BK[Zip] && McD[order] = BK[McD Order]), McD[price])

完成后,您可以完全使用BK表。

请注意,某些价格行将具有空值,因为没有相应的McD行具有匹配的zip和订单。 (我想你可以把这些订单的中间价格超过他们确实存在的邮政编码并插入那些情况......)如果邮政编码的价格是统一的,那么这可以更简单。

另外,请注意,当您将价格放入表格并对其使用隐式度量时,它可能默认为总和,您$6和{10048 angus {1}}因为您有重复的行。如果您愿意,切换到最高位置会获得$3

这种类型的合并也可以在查询编辑器中进行,但由于我无法访问C:驱动器上的数据源,因此我无法在您所包含的pbix上进行合并。