Excel数据源的多表合并和SQL查询.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
可编辑 可编辑 Excel多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们 需要从两张数据表里,得出每个行业的股票波动率平均值。 第一个数据表保存了 股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行 业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价, 有四列,第一 列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收 盘价和收盘价。 上面例子的一个简单且常用的方法是使用增加辅助列、 averageifs、数据透视表 之类的函数。但当数据比较大或者逻辑结构比较复杂时, 这些函数计算的速度比 较慢。杨文博在博客上提到类似的问题,并给出了一个基于Python的解决方案。 但这样需要安装Python,同时修改起来也比较麻烦。下面以上述案例为例子演 示Excel内部如何支持基于多个表格数据进行查询。 1、单击菜单 数据-自其它来源-来自Microsoft Query ,之后弹出一个窗口 2、选择Excel Files*点击确定后,进入选择工作簿界面。此处选择包含数据的文件。它可 以是你正在编辑的这个文件。再次点击确定后你将进入到以下界面。 在该界面上点击左下方 的“选项”,在弹出的表选项勾选上“系统表”。 确定后可以看到查询向导左侧会出来一些 数据表。每一行都是一个数据表其中后缀为 $的表为Excel文件中的工作表,其它为 Excel 文件中的名称所定义的数据区域。点击左侧的“ + ”号可以展开看这个数据表的列名。 3、接下来有几种方式,一种方式是利用查询向导可视化地建立数据库查询语句,另一种方 式是直接输入数据库查询语句。我一般使用后者。这时候在上面的“查询向导 -选择列”中 随意勾选上一列,不断下一步,直到点击完成确定。此时会弹出以下方框: 导入如 冒!爭. 请选择该数据在工作簿中的显示方武o ?表⑴ 朗U埶据邃视衷㈤ 数据潼视囹和敎据请视表◎ a 仅创建连援(? 数据的放置位蛊 *现肓王作表②: ◎新建工作夷? ⑧… I 确是 ]~~~~ 4、此时可以选择数据显示为表格形式或者数据透视表 ,并选择数据放置位置。激活刚才 选择的位置,点击菜单“数据-属性”,在弹出的窗口再次选择连接属性, 进入下图的界面: 连接屋性 连接屋性 在命令文本区域输入新的SQL查询语句,点击确定,再刷新数据区域即可。 SQL查询语句是整个操作的核心。这里不谈具体 SQL语句怎么写,而是介绍下 如何引用各种数据表。有以下几种方法: ? 通过名称引用。比如如果定义一个数据区域为 Industry,那么select * from industry这样是可行的。这种方法最多支持65535行数据,当数据行数过多时, Excel会提示找不到该数据表。同一张工作表里可以有多个数据表,通过定义不 同的名称去引用。 ? 通过工作表名引用。比如一个工作表名为 Quotes,那么select * from Quotes$这样是可行的。这里工作表名后面的$号表示这是一个工作表。工作 表可以包含高达100万行数据。但同一个工作表内只能有一个数据表。 ? 可以通过数据表的地址进行引用。比如 select * from Quotes$A1:B10000 ? 上面的引号可以用中括号代替。比如 select * from [Quotes$A1:B10000] 。 ?如果数据表不在目前工作的文件内,需要在上面的数据表名前添加数据文件的路 径和文件名,比如 select * from D:\test.xlsx.Quotes$

文档评论(0)

laugh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档