Excel数据源的多表合并和SQL查询Word文档格式.docx
《Excel数据源的多表合并和SQL查询Word文档格式.docx》由会员分享,可在线阅读,更多相关《Excel数据源的多表合并和SQL查询Word文档格式.docx(4页珍藏版)》请在冰点文库上搜索。
上面例子的一个简单且常用的方法是使用增加辅助列、averageifs、数据透视表之类的函数。
但当数据比较大或者逻辑结构比较复杂时,这些函数计算的速度比较慢。
杨文博在博客上提到类似的问题,并给出了一个基于Python的解决方案。
但这样需要安装Python,同时修改起来也比较麻烦。
下面以上述案例为例子演示Excel内部如何支持基于多个表格数据进行查询。
1、单击菜单数据-自其它来源-来自MicrosoftQuery,之后弹出一个窗口
2、选择ExcelFiles*点击确定后,进入选择工作簿界面。
此处选择包含数据的文件。
它可以是你正在编辑的这个文件。
再次点击确定后你将进入到以下界面。
在该界面上点击左下方的“选项”,在弹出的表选项勾选上“系统表”。
确定后可以看到查询向导左侧会出来一些数据表。
每一行都是一个数据表其中后缀为'
$'
的表为Excel文件中的工作表,其它为Excel文件中的名称所定义的数据区域。
点击左侧的“+”号可以展开看这个数据表的列名。
3、接下来有几种方式,一种方式是利用查询向导可视化地建立数据库查询语句,另一种方式是直接输入数据库查询语句。
我一般使用后者。
这时候在上面的“查询向导-选择列”中随意勾选上一列,不断下一步,直到点击完成确定。
此时会弹出以下方框:
4、此时可以选择数据显示为表格形式或者数据透视表,并选择数据放置位置。
激活刚才选择的位置,点击菜单“数据-属性”,在弹出的窗口再次选择连接属性,进入下图的界面:
在命令文本区域输入新的SQL查询语句,点击确定,再刷新数据区域即可。
SQL查询语句是整个操作的核心。
这里不谈具体SQL语句怎么写,而是介绍下如何引用各种数据表。
有以下几种方法:
·
通过名称引用。
比如如果定义一个数据区域为Industry,那么select*fromindustry这样是可行的。
这种方法最多支持65535行数据,当数据行数过多时,Excel会提示找不到该数据表。
同一张工作表里可以有多个数据表,通过定义不同的名称去引用。
通过工作表名引用。
比如一个工作表名为Quotes,那么select*from`Quotes$`这样是可行的。
这里工作表名后面的$号表示这是一个工作表。
工作表可以包含高达100万行数据。
但同一个工作表内只能有一个数据表。
可以通过数据表的地址进行引用。
比如select*from`Quotes$A1:
B10000`。
上面的引号可以用中括号代替。
比如select*from[Quotes$A1:
B10000]。
如果数据表不在目前工作的文件内,需要在上面的数据表名前添加数据文件的路径和文件名,比如select*from`D:
\test.xlsx`.`Quotes$`