当前位置:首页 > 技术分析 > 正文内容

导入多张数据列表创建数据透视表

运用导入外部数据结合“编辑OLEDB”查询中的SQL语句技术,可以轻而易举地对不同工作表,甚至不同工作簿中结构相同的多张数据列表进行合并汇总并创建动态的数据透视表,而不会出现多重合并计算数据区域创建数据透视表时只会选择第一行作为行字段的限制。


汇总同一工作簿下的多张数据列表记录

图15-16展示了某公司的“一仓”“二仓”和“三仓”3张数据列表,这些数据列表都存放在D盘根目录下的“仓库入库表.xlsx”文件中。

图15-16仓库入库数据列表

示例:仓库入库表

下面将对图15-16中的3张仓库数据列表进行汇总分析,具体操作步骤如下。步骤1打开D盘根目录下的“仓库入库表.xlsx”文件,单击“汇总”工作表标签。

步骤2重复操作示例15.1的步骤1和步骤2,选取目标文件“仓库入库表.xlsx”,弹出【选择表格】对话框。

步骤3清空【命令文本】文本框中的内容,输入以下SQL语句:

SELECT'一仓库'AS仓库名称,*FROM[一仓$]UNIONALL

SELECT'二仓库',*FROM[二仓$]UNIONALL

SELECT'三仓库',*FROM[三仓$]

此语句的含义:

SQL语句第一部分“SELECT"一仓库"AS仓库名称,*FROM[一仓$]”表示返回“一仓库”数据列表的所有数据记录,“一仓库”作为插入的常量来标记不同的记录,然后对这个插入常量构成的字段利用AS别名标识符进行重命名字段名称,最后通过UNIONALL将每个仓库的所有记录整合在一起,相当于将“一仓”“二仓”和“三仓”3张工作表粘贴到一起。

由于UNIONALL只以第一段的字段标题为基准,因此后面的AS别名可省略。Excel使用SQL语句在当前工作簿中引用本身的工作表时的引用规则如下。Excel工作表中引用时需要将其包含在方括号“[]”内,同时需要在其工作表名称后面加上“$”符号,如SELECT*FROM[一仓$]。

如果引用工作表中的部分区域,则可以在“$”符号后面添加区域限定。例如,下面的语句表示引用“一仓”的“A1:E448”区域。

SELECT*FROM[一仓$A1:E448]

步骤4完成数据透视表的创建、布局和美化后如图15-17所示。

图15-17汇总后的数据透视表


汇总不同工作簿下的多张数据列表记录

图15-18展示了2018年某集团“华东”“东北”和“京津”3个区域的销售数据列表,这些数据列表都保存在D盘根目录下的“2018年区域销售”文件夹中。

图15-18区域销售数据列表


示例:编制各区域销售统计动态数据列表

步骤1打开D盘根目录下的“2018年区域销售”文件夹中的“汇总.xlsx”工作簿,单击“汇总”工作表标签。

步骤2重复操作示例15.1的步骤1和2,选取D盘根目录下“2018年区域销售”文件夹下的目标文件“汇总.xlsx”,弹出【选择表格】对话框,单击【确定】按钮,打开【连接属性】对话框。

步骤3清空【命令文本】文本框中的内容,输入以下SQL语句。

SELECT'东北'AS区域,*FROM[D:\2018年区域销售\东北地区.xlsx].[东北$]UNIONALL

SELECT'华东'AS区域,*FROM[D:\2018年区域销售\华东地区.xlsx].[华东$]UNIONALLS

ELECT'京津'AS区域,*FROM[D:\2018年区域销售\京津地区.xlsx].[京津$]

提示:Excel使用SQL语句在当前工作簿中引用其他工作簿中的工作表时的引用规则如下。需要在工作表名称前面加上文件名称限定,文件名包含在方括号内,文件名与工作表之间使用“.”分隔。例如,下面语句表示引用“D:\2018年区域销售\东北地区.xlsx”工作簿的“东北”工作表。SELECT*FROM[D:\2018年区域销售\东北地区.xlsx].[东北$]

步骤4完成数据透视表的创建、布局和美化后如图15-19所示。

图15-19完成后的数据透视表

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3650.html

标签: select2多选
分享给朋友:

“导入多张数据列表创建数据透视表” 的相关文章

学会使用Vue JSX,一车老干妈都是你的

作者:子君转发链接:https://mp.weixin.qq.com/s/eAOivpHeowLShfwPfW8-BA?君自前端来,应知前端事。需求时时变,bug改不完。?连续几篇文章,每篇都有女神,被老铁给吐槽了,今天不提了女神了,反正女神都是别人的(扎心了)。这两天小编看了腾讯与老干妈的事情,晚...

Vue.js 组件通信的 3 大妙招

在 Vue.js 中,组件化是其核心概念之一,允许你将复杂的界面拆分成多个独立的、可复用的组件。在构建大型应用时,如何高效地在组件之间传递数据和触发事件是非常重要的。Vue.js 提供了多种方式来处理组件间的通信,下面是最常用的 3 种方式:1.父子组件通信:通过 Props 和 Events在 V...

gitlab 分支保护设置

一、功能描述代码管理中管理,我们把稳定的分支设置为保护,可以防止其他人员误操作(例如删除,合并,推送代码等)。二、Gitlab配置步骤1 点击项目Repository标签2.点击Expand标签3.配置如下:默认master是被保护的,而且只有维护人员具有推送和合并权限。设置保护分支,这里的beta...

「Git迁移」三行命令迁移Git包含提交历史,分支,tag标签等信息

问题描述:公司需要将一个git远程服务器的全部已有项目迁移到一台新服务器的Gitlab中,其中需要包含全部的提交纪录,已有的全部分支与全部打tag标签,目前此工作已全部迁移完毕,特此记录一下操作步骤环境描述:1. 要迁移的远程Git:Gitblit2. 迁移目的Git:Gitlab3. 暂存代码的P...

快速掌握 Git:程序员必会的版本控制技巧

在现代软件开发中,版本控制系统(VCS)是开发人员不可或缺的工具。无论是个人项目,还是多人协作的团队开发,良好的版本控制都能确保代码管理的高效性与稳定性。而在版本控制系统中,Git 凭借其分布式、灵活性和高效性,成为了最流行的工具之一。几乎所有的开发团队都在使用 Git 来管理代码版本、协作开发和追...

最快清除数组空值?分享 1 段优质 JS 代码片段!

本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿!大家好,我是大澈!本文约 600+ 字,整篇阅读约需 1 分钟。今天分享一段优质 JS 代码片段,用最简洁的代码清除了数组中的空值。老规矩,先阅读代码片段并思考,再看代码解析再思考,最后评论区留下你的见解!const arr...