使用 Power Query 在 Excel 2010 中进行外连接和并集

使用 Power Query 在 Excel 2010 中进行外连接和并集

我有两张表格(Excel 2010 中同一工作簿的两个工作表):

第一张桌子

第二张桌子

结果应如下所示:

在此处输入图片描述

我的 SQL 代码运行良好:

SELECT table_2.ID, table_1.value_1, table_2.value_2 FROM table_1 RIGHT JOIN table_2 ON table_1.ID = table_2.ID
UNION
SELECT table_1.ID, table_1.value_1, table_2.value_2 FROM table_1 LEFT JOIN table_2 ON table_1.ID = table_2.ID

有没有办法使用 Power Query 在 Excel 中做同样的事情?

使用内置的 Microsoft Query 和 SQL 解决了问题,但仍然对使用 Power Query 的解决方案感兴趣。

答案1

因此,在 Power Query 中有一个可选参数用于设置合并查询的连接类型(即表.嵌套连接功能)

Table.NestedJoin(table1 作为表,key1 作为任意,table2 作为任意,key2 作为任意,newColumnName 作为文本,可选 joinKind 为可空数字) 见表

默认值为 1,即LEFT OUTER连接。

合并查询的默认 GUI:

在此处输入图片描述

在您的 PQL 语句中生成如下一行:

-- LEFT OUTER JOIN
Table.NestedJoin(#"Changed Type",{"ID"},Table1,{"ID"},"NewColumn")

由于根本没有设置 joinKind 参数,因此它默认为LEFT OUTER连接。

如果你检查仅包含匹配的行复选框,您将执行INNER连接并且生成的行如下所示:

-- INNER JOIN
= Table.NestedJoin(#"Changed Type",{"ID"},Table1,{"ID"},"NewColumn",JoinKind.Inner)

(注意:有一个 JoinKind 枚举映射到参数的魔法数字:因此 JoinKind.Inner 计算为 0,JoinKind.LeftOuter 计算为 1,等等。)

在 Excel 中,您必须手动修改此公式才能执行FULL OUTER连接:

= Table.NestedJoin(#"Changed Type",{"ID"},Table1,{"ID"},"NewColumn",JoinKind.FullOuter)

或者

= Table.NestedJoin(#"Changed Type",{"ID"},Table1,{"ID"},"NewColumn", 3 )

在 PowerBI Desktop 中,有一个下拉菜单可以选择连接类型。

相关内容