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

Powerbi Power BI:机会模型(关联3个表),powerbi,dax,Powerbi,Dax,我试图创建一个“机会”计算模型,但我得到的输出结果并不准确。样本问题可能是麦当劳和汉堡王在不同地区销售食品,一些地区既有BK也有McD,它们都销售类似的食品类型,但有些地区既有BK也有McD,但它们不能满足相同的订单类型(例如邮政编码10049,其中BK和McD都存在,但McD销售汉堡,BK销售沙拉;因此BK可以覆盖该地区,但无法满足潜在客户的需求。) 在示例电子表格中,有三个选项卡,第一个是McD sales,第二个是BK sales,第三个是协调McD和BK订单之间的命名约定 我从用关系连接

我试图创建一个“机会”计算模型,但我得到的输出结果并不准确。样本问题可能是麦当劳和汉堡王在不同地区销售食品,一些地区既有BK也有McD,它们都销售类似的食品类型,但有些地区既有BK也有McD,但它们不能满足相同的订单类型(例如邮政编码10049,其中BK和McD都存在,但McD销售汉堡,BK销售沙拉;因此BK可以覆盖该地区,但无法满足潜在客户的需求。)

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

我从用关系连接表开始。我想我需要通过Zip将McD连接到BK,然后将McD连接到交叉引用。由于PBI中的多对多关系限制,我被迫创建具有唯一Zip值和订单名称的查找表。看起来有点凌乱,但可以完成这项工作。问题是我可以查找邮政编码连接,但不是潜在订单的销售

关系:

这是一个很清楚的例子,说明了事情是如何不起作用的。邮政编码10048汇总了麦当劳的销售额,并显示了每种BK订单类型的销售额。预计安格斯的销售额为5美元,洋葱汤为3美元,总计8美元。

如果我尝试将交叉引用的BK订单名称连接到BK订单,则会出现歧义错误。

电子表格数据文件:


Excel和Power BI文件:

我认为您无法完全按照自己的意愿完成此操作。这基本上等同于在两个表之间创建多个关系。Power BI不允许您这样做

不过有一些解决方法。例如,您可以使用计算列将
McD[order]
值拉到
BK
表中:

MDorder = MAXX(FILTER(Crossreference, Crossreference[BK] = BK[order]), Crossreference[McD])
这将允许您使用查找或类似的max type函数从
McD
表格中提取价格:

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

一旦这样做,就可以完全在
BK
表上工作


请注意,一些价格行将有空值,因为没有对应的
McD
行具有匹配的邮政编码和订单。(我想您可以将这些订单的中间价格与它们确实存在的邮政编码进行比较,并在这些情况下将其插入…)如果价格在邮政编码之间是一致的,那么这可以变得更简单

另外,请注意,当您将价格放入表中并对其使用隐式度量时,它很可能会默认为一个总和,对于
10048
angus
,您将得到
$6
,因为您有重复的行。如果您喜欢,切换到max将得到
$3



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

是否需要将“angus”和“cheesburger”都与“burger”关联?您似乎没有使用“cheeseburger”。是的,此示例是更大数据集的简化变体。实际数据/问题有超过100K条记录,映射表有两个公司的服务类型,其中一个公司的服务更通用,因此同一类型会多次显示。
Price = MAXX(FILTER(McD, McD[Zip] = BK[Zip] && McD[order] = BK[McD Order]), McD[price])