如何在Excel中为多列创建关系?

时间:2013-03-14 20:06:15

标签: sql excel join relationship powerpivot

我正在尝试在powerpivot中创建两个表之间的关系。但是,我的表没有任何键。我想要做的是创建一个类似SQL-Unique-Constraint的关系,它基于多个值组合,是关键。

例如:

Table1列是First,Last,Address,Phone

Table2列是相同的。

我想在excel中创建一个等同于

的关系

select * from Table1 full join Table2 on 1.Fist=2.First and 1.Last=2.Last and 1.Address=2.Address

但是,创建关系对话框不允许选择多个列。我尝试了创建多个1列关系的路线。但是,如果列中存在重复值,则关系也不能包含列。

我有一种感觉,我可能正在接近从错误的方向完成这一点。任何帮助表示赞赏!谢谢。

2 个答案:

答案 0 :(得分:2)

Zee的,

您是对的,PowerPivot本身不支持多列关系。然而,有两种解决方法:

  • 将一个键添加到连接在一起的各个列的每个表中,并且在至少一个可以创建的关系中提供这是唯一的。如果您的情况是两个表都没有唯一键,则可以使用SQL创建唯一键的中间表。

  • 从技术上讲,可以在表之间创建多个关系,但只有一个可以处于活动状态。有一个名为USERELATIONSHIP()的DAX函数可以使用非活动关系。这是一项先进的技术。

您的解决方案可能是在源SQL查询中组合这两个表。 雅各布

答案 1 :(得分:0)

如果您要做的只是使用2个或更多列的内部联接,请考虑创建一个计算列,该列连接2个表中每个表中的2或3列,然后在它们之间创建关系。

我有类似的情况并使用了这种技术。