Excel - 组合来自多个表的数据

时间:2018-06-13 09:51:35

标签: excel

我有Excel 2016.我有三个工作表,每个工作表包含一个表(让我们称之为tab1,tab2,tab3)。

每个表都包含一个名为servId的列。

在第4个工作表中,我想创建一个包含所有三个表中所有servId条目的列表。

e.g。如果tab1包含条目1,2,3,则tab2包含4,5,6,tab3包含7,8,9我会得到1,2,3,4,5,6,7,8,9的结果列表

我该怎么做?我已经找到了很多可以在表之间进行匹配的示例,但这并不好,因为我想要所有条目。

我尝试了显而易见的事情:

=tab1[servId],tab2[servId],tab3[servId]

但这只是给了我一个错误。

我确信必须有一个非常明显的方法来做到这一点,但不能为我的生活做到这一点。

2 个答案:

答案 0 :(得分:1)

我认为您可以使用查询编辑器。

<强> 1。首先,您必须将所有表添加到Power Query Editor:

选择您的第一个表格,转到“数据&gt;来自表格”;它将打开Power Query Editor。单击“关闭并加载”上的黑色小箭头,然后选择“关闭并加载到...”。 在打开的对话框中,将默认选择从“表”更改为“仅创建连接”。 对所有表格重复此操作

<强> 2。附加所有查询并仅保留您的servID:

转到新工作表,转到“数据 - >新查询 - >组合查询 - >添加”,选择“三个或更多表”并添加所有表格。 Power Query Editor将打开,所有表连接成一个。 您可以进行转换,例如只保留ServID列(右键单击ServID列的名称,删除其他列例如)。

完成后,使用正常的“关闭和加载”

已经完成了:)

答案 1 :(得分:0)

您可以使用非常简单的宏来获得结果。

excel tables

Sub Test()
    Range("Table1[ID]").Copy
    Range("J1").PasteSpecial xlPasteValues
    Range("Table2[ID]").Copy
    Total_Rows = WorksheetFunction.CountA(Range("J:J"))
    Range("J" & Total_Rows + 1).PasteSpecial xlPasteValues
    Range("Table3[ID]").Copy
    Total_Rows = WorksheetFunction.CountA(Range("J:J"))
    Range("J" & Total_Rows + 1).PasteSpecial xlPasteValues
    ActiveSheet.Range("$J:$J").RemoveDuplicates Columns:=1, Header:=xlNo
    Application.CutCopyMode = False

End Sub

excel after macro is run

这假设您根本没有“J”列中的任何数据,并且希望将数据粘贴在活动工作表中。