Excel中用SQL查询导入数据的方法

在Excel数据管理时,我们经常会遇到需要跨表查询并汇总数据的需求,例如有一个学生姓名表,另有一个学生成绩表,两个表中用以标识身份的均为学号(因为姓名有可能重复)。这种时候虽然可以用vlookup()公式来定位相同的学号项,但要取成绩什么挺麻烦的,如果用SQL来建立查询就会比较简单了。

举个例子,现有一个Excel文档,包括两个数据表students和scores,其中,students表中有字段id表示学号,name表示姓名;scores表中有字段id表示学号,score表示学生成绩。如果要汇总生成包括学号、姓名和成绩的电子表,可以这么操作。

首先新建一个EXCEL文件,然后在“数据”选项卡选择“自其他来源”,选择下拉菜单中的“来自Microsoft Query”。


来自Microsoft Query

第二步,在新建数据源窗口中,双击其中的“Excel File”项,选择包含原始数据表的工作簿文件,如图所示。


新建文件

第三步,在选择查询数据列的对话框中,选择第一个表中id和name字段,以及第二个表中的score字段,如果要调整显示顺序,可以选择相应的字段名再点右侧的排序按钮中的向上和向下。这里要注意,如果提示未找到可视数据表,可以单击一下下方的“选项”,将“系统表”选上。


表选项

第四步,接下去,软件会提示无法创建查询,因为我们还没有设置跨表查询汇总的主键匹配,此时有两种方法,方法一是点“SQL”按钮输入查询的SQL语句,例如:

SELECT `Sheet2$`.id, `table1$`.name, `Sheet2$`.core, 
FROM `D:\My Documents\Desktop\scores.xlsx`.`Sheet2$` `Sheet2$`, `D:\My Documents\Desktop\scores.xlsx`.`table1$` `table1$`
WHERE `table1$`.id = `Sheet2$`.id

对于本实例,用方法二更加简单直接,将其中一个表的id字段点击拖动至另一个表中的id字段,就可以创建数据库的外链。

第五步,设置完毕,关闭查询编辑窗口,此时会出现导入数据对话框,我们在这里选择默认的“表”,也就是在当前表中鼠标选中的单元格处插入查询的数据集。


插入数据

至此,你会看到我们查询的结果已经在数据表中显示了。如图所示。


最终效果

你可能感兴趣的:(Excel中用SQL查询导入数据的方法)