合并两张表格中的数据以形成聚合输出(类似于数据库外连接)
假设我有一个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 ... ....
现在,我知道使用VLOOKUP
和INDEX
, MATCH
函数很容易做到这一点,但我的问题是Excel中是否有更好的function来实现这一点。
我正在考虑使用ADO来查询两张表并输出它,但我只是觉得必须有一个更好的方法/内置function。
额外的笔记:
-
我的数据不需要是活的 – 这意味着它不需要是会减慢Excel的公式 – 我知道我可以使用复制/粘贴特殊值,值。
-
我知道电力查询,但我试图不使用的东西,将需要我的用户安装加载项(但工作簿中的macros将是好的)。
这很容易通过Excel的内置function来完成。 它被称为Microsoft Query
。
它可以在function区下的Data
– Other Sources
– From Microsoft Query
。
您从古老的对话框中select您的工作簿(可以是相同的工作簿)。
它会抱怨说找不到任何表格,点击确定。 然后从对话框进入选项,并选中系统表格框。 您现在可以从两个源表中select所需的列。 您可以像这样在查询生成器中join它们:
现在从文件菜单中selectReturn Data to Microsoft Excel
。
将显示“导入数据”对话框,让您select希望显示新数据表的位置。
如果需要,您甚至可以设置属性来定期刷新。
注意:此解决scheme不需要VBA,也不需要工作表公式。 它会根据您在Microsoft Query中创build的SQL(它是Excel的内置组件)生成一个连接表。 结果表可以是静态的或dynamic的。