我正在使用 Excel (Microsoft 365),有两个结构相同的表,每个表都在自己的工作表中。这两个工作表位于同一工作簿中。第一个工作表及其包含的表都名为Table_A
。第二个工作表及其包含的表都名为Table_B
。两个表都有字段Field_A
、Field_B
、Field_C
。在每个表中,Field_A
每行都有一个唯一值(即,可以被认为是数据库用语中的主键)。
我有一个名为 的第三张工作表Join
。此工作表与上面描述的前两个工作表位于同一工作簿中。在此工作表中,我想创建一个名为 的表Join
,其中填充了如果我使用 SQL Server 而不是 Excel 时将使用以下 T-SQL 语句获得的数据:
SELECT Table_A.Field_A, Table_A.Field_B, Table_B.Field_B, Table_A.Field_C, Table_B.Field_C
FROM Table_A INNER JOIN Table_B
ON Table_A.Field_A = Table_B.Field_A;
我如何在 Excel 工作簿中执行此操作?请注意,由于这一切都包含在单个工作簿中,因此我希望避免将任何文件名引用作为数据源。
答案1
Power Query 就是您在此处寻找的工具。
假设这是我们的数据。为了清楚起见,我将表 2 中的列命名为 D 和 E,而不是重复 B 和 C。
表格1
表2:
首先,右键单击表格1并选择从表/范围获取数据。
Power Query 编辑器窗口将打开,它将显示名为表格1。
点击左上角的关闭并加载下的向下箭头按钮,然后选择关闭并加载至...选项。在下一个框中,选择仅创建连接然后点击好的。
编辑器将关闭,右侧应出现查询和连接面板。现在我们将添加表 2,方法是右键单击并选择从表/范围获取数据。
Power Query 编辑器将再次打开。左侧有一个名为“查询”的面板。右键单击表 2 下方的空间,然后选择新建查询 > 合并 > 合并查询为新查询。
您现在可以根据需要配置连接 - 在本例中,选择表格1, 然后表2,点击选择列字段1A然后列字段2A最后从下拉菜单中选择加入类型内部(仅匹配的行)。 点击好的。
您将看到 Power Query 中出现一个名为合并1。在右侧,您将看到 Table2 显示为一列,但列不会展开 - 您需要单击展开按钮才能展开。如果您不想,您可以选择不再显示连接字段。
现在点击左上角的关闭并加载按钮,连接表将作为新工作表出现在工作簿中。只有当您单击刷新新工作表时,对表 1 和表 2 所做的更改才会级联表_合并1。