excel的多表格合并
比如说你有20几家门店的数据,每个门店一个表格,难道要重复复制吗?如果有100家门店怎么办?
我们的数据表往往是从不同人员,不同部门不同门店或者子公司收集到的统一格式数据。这些数据一般都还是按照不同时间存放的,最常见的是按天、月、季度、年度存放的。如果要汇总做月报、季报或年报,这些分散在不同工作表的数据,就无法使用数据透视表来做快速分析,跨表分析需要复杂的函数,甚至需要代码来实现。
所以普遍的做法就是把所有表合并到一张表上。
在excel2016以前,只能通过一张张表复制来实现。不过现在有了power query这款神器,点击鼠标就可以合并多个表格,而且只需一次建模就可以自动合并,不用再为做月报、季报或者年报发愁了。
power query:数据获取
power pivot:数据分析(升级版的数据透视表)
power view:交互图表
power map:可视地图(用地图显示多表数据)
excel2016自带power query工具,2013和2010版本么有,可以到微软官网去下载免费插件,更早版本的excel就不支持了。
如何下载?百度搜索power query插件,第一个结果安装教程,第二个结果是微软官网的下载链接,点击进去选择对应的版本下载即可
怎么知道自己用的是32位还是64位的呢?在我的电脑图标上右键,看属性,看看是32位还是64位的操作系统
多表合并
1、指定合并文件
excel2013:安装插件后就可以在菜单栏上看到power query的入口
excel2016:数据--新建查询--从文件--从文件夹进入,选择我们需要合并文件的存放目录,所有要合并的文件必须放在同一个目录下。点击确定就可以看到要合并的目录了,点击编辑就可以把所有要合并的文件加载到power query中
2、读取文件内容
我们需要合并的是excel的文件内容,放在第一列content中,现在显示的是binary,二进制的意思,其实只需要保留这一列就可以了,因为我们要合并的只是excel的内容,可以删除其他列,只留下文件这一列
如何把二进制的content翻译成可以读取的内容呢?在添加列选项卡里,自定义列,在新列名中输入想要的内容,在自定义列公式中输入公式,=Excel.Workbook([content],true),需要注意的是,标点符号都要是英文的,excel必须区分大小写,excel和workbook首字母必须是大写字母,否则就会出现excel无法识别的情况
公式中第一个参数代表的就是刚刚保留的那一列,第二个参数true代表的是所有的excel表中的第一行都是标题,excel在后续提取数据的时候,会绕考第一行,只选取后面数据部分
然后点击确定就可以,在power query中就能看到新添加的表内容这一列
3、合并工作表
工作表都被读取出来后,需要做的是读取工作表中存放的数据,在表内容这一列,点击扩展按钮,这样就可以把工作会标的信息都列出来,包括名字、数据、项、类型以及是否隐藏等
只勾选date项目,点击确定,这样就把所有要合并的工作表都读取出来了
这个时候再点击扩展按钮,就可以看到要合并数据的所有列,点击确定,就把所有表的数据都完全合并到一起了
4、把合并结果转成excel文件
开始--关闭并上载至--选择存放地,然后就得到了合并的工作表
如果原始表格里的数据有修改、删除或者新增怎么办?
只需要在合并结果中,切换到表格工具选项卡,点击设计--刷新,就可以把新的数据自动合并进来
如果同一目录下有新增表格,刷新后也可以自动合并进来
用excel自带的power query合并的好处,就是能建立原始数据和合并数据之间的动态链接关系,原始数据中的任何变化,只要刷新一下就可以搞定
所以我们需要做的就是把合并架构搭建起来,这样任何的变化都能自动合并到合并结果上。
如果excel是2010以前的版本,没办法安装power query怎么办?
可以安装第三方的插件,比如说E灵,方方格子,慧办公等等,都可以提供傻瓜式的合并操作,不过合并结果跟原始数据没有关联。当原始数据变动时,需要重新合并。