合并两张表格中的数据以形成聚合输出(类似于数据库外连接)

假设我有一个Excel工作簿(.xlsx / .xlsm)与以下两张(简单为例):

第1页:

Student_Id: Name: Age: Sex: ... 1 Bobby 10 Male ... 2 Suzy 11 Female ... 3 Mike 10 Male ... 4 Sally 9 Female ... .... 

第2页:

 Class: Student_Id: Math 1 Math 2 Math 4 English 3 English 4 .... 

现在,我想创build一个输出表,它是两者的混合体,沿着以下方向看:

输出:

 Class: Name: Age: Sex: ... Math Bobby 10 Male ... Math Suzy 11 Female ... Math Sally 9 Female ... English Mike 10 Male ... English Sally 9 Female ... .... 

现在,我知道使用VLOOKUPINDEXMATCH函数很容易做到这一点,但我的问题是Excel中是否有更好的function来实现这一点。

我正在考虑使用ADO来查询两张表并输出它,但我只是觉得必须有一个更好的方法/内置function。

额外的笔记:

  1. 我的数据不需要是活的 – 这意味着它不需要是会减慢Excel的公式 – 我知道我可以使用复制/粘贴特殊值,值。

  2. 我知道电力查询,但我试图不使用的东西,将需要我的用户安装加载项(但工作簿中的macros将是好的)。

这很容易通过Excel的内置function来完成。 它被称为Microsoft Query

它可以在function区下的DataOther SourcesFrom Microsoft Query

您从古老的对话框中select您的工作簿(可以是相同的工作簿)。

它会抱怨说找不到任何表格,点击确定。 然后从对话框进入选项,并选中系统表格框。 您现在可以从两个源表中select所需的列。 您可以像这样在查询生成器中join它们:

在这里输入图像说明

现在从文件菜单中selectReturn Data to Microsoft Excel

将显示“导入数据”对话框,让您select希望显示新数据表的位置。

如果需要,您甚至可以设置属性来定期刷新。

注意:此解决scheme不需要VBA,也不需要工作表公式。 它会根据您在Microsoft Query中创build的SQL(它是Excel的内置组件)生成一个连接表。 结果表可以是静态的或dynamic的。