美文网首页零售数据分析
Excel文件分拆和合并,七大方向你懂几个 | 附一键实现方案

Excel文件分拆和合并,七大方向你懂几个 | 附一键实现方案

作者: 回头便知 | 来源:发表于2020-01-09 16:33 被阅读0次

重点:遇到问题,我们要先理解问题,再思考解决方向,最择适合自己的方案

实操:以下就是示范

提出问题

在《数说》会员社群交流中,关于Excel技能方面,经常有朋友会问2个问题:

1、有一个Excel文件的总表数据,怎么按其中一个字段拆分为多个独立的Excel文件?

2、有多个Excel文件数据(表头都是统一的),汇总到一个文件的一个Sheet里面?

理解问题

1、直接上图来说明比较直接,假设你有【一个工作表】的数据,想把它按【地区】字段拆分成不同的独立文件,且文件名就是由【地区】字段的值去对应命名的。

也就是说,要得到以下的结果,因数据源里共有4个地区,所以要生成4个对应数据且独立的Excel文件:

所以简单说,就是指:拆分单工作表成多工作簿

2、理解了第一个问题,第二个问题就好理解了,可以先理解为就是对应的逆过程,即把多个独立的数据结构相同的Excel文件组合到一个工作表中。简单地说,就是合并多工作簿成单工作表

好,问题理解了之后,接下来就是考虑解决方案啦!

可能的解决方案

由于Excel确实太强大了,所以要实现的方法也有多种,以下是一个Excel问题产生后,你应该要想到的一些可能的方向思路:(梳理思路的方向)

1、函数法(超级不推荐)

要各种手工加跨工作簿引用写各种函数,估计要疯了……

2、操作法(不推荐,数据不大,勉强可用;数据量大,也要疯)

例如拆分文件时,可以通过筛选不同的地区,然后复制,然后粘贴,一个地区一个地区的处理

3、透视表法(还可以,传统手工操作中,算是比较方便的做法)

透视表法可以通过显示明细,或者是筛选自动分页都可以实现

4、SQL法(还可以,但其实手工操作的话,透视表法还比它快)

这里也有2个分支:ODBC、OLE DB。例如拆分时,可以通过写个语句select * from [sheetname] where 地区="广州",提取出广州地区的数据,但需要一个个地区手工处理;当然在做合并时,用个union all就还挺方便的。

5、PowerQuery法(还不错,但限Office 2016以上)

这里也可以分操作法M函数法,操作法对于熟手的话1分钟内也能操作完毕,生手需要学习;M函数法就高阶一些,可以写成自定义函数实现。PQ的优势就是,可以实现后续也可以通过刷新即可自动更新,就是懂的人较少,且版本受限。

6、PowerPivot法(超级不推荐,杀鸡焉用牛刀)

属于操作法的一种,也要Office2016以上,例如拆分时可以通过Summarize从模型中筛选出指定地区数据返回到Sheet中,然后接下来和前面的手工筛选差不多,就真是大材小用了。

7、VBA法(隆重推荐,因为代码我已写好了,Excel版本通用性强~)

普通用户看到VBA,就知道要写代码,头都大了!但不用担心,我已写好了,你直接就可拿来用!代码的执行效率也还不错的~

看完以上7个方向,你应该明白:为什么很多的“大神”,也不敢说精通Excel了吧?你往每个方向去学习Excel,精通三个方向以上,我认为就可以说很熟练使用Excel了~

那如果选择VBA法解决的思路应该怎么样呢?VBA可以调用Excel里的函数、操作,所以可以结合以上方法组合使用。例如这些:

  • 7.1 筛选+复制(结合以上的方法2)

  • 7.2 透视表法(结合以上的方法3)

  • 7.3 ADO+SQL法(结合以上的方法4)

  • 7.4 数组法(VB原生的方法)

  • 讲了那么多,对于很多人来说,其实只要懂一种方法就足已!我列出来以上的方向,其实主要是介绍一个思路的过程,解决一个Excel的问题方法真的可以有很多,大家在平时遇到问题卡住时,也不妨根据自己的实际技能,尝试多方向思考

    我的解决方案

    考虑到版本的通用性,一次写好代码后也就一劳永逸了,所以下面会分享我的VBA解决方案,大家只要复制代码到Excel工作表中运行即可。

    1、拆分工作表

    Step1:打开你要拆分的工作表,然后同时按Alt+F11打开VBA编辑界面,如果没有任何反应请同时按Fn+Alt+F11,再不行我也帮不了你了。

    Step2:插入一个模块。不会的自行百度如何插入vba模块

    Step3:把下图的代码敲入到新建模块中(不想手动敲代码?方法在文末~

    Step4:按F5运行代码,按提示操作即可

    以下代码的思路是用的VBA调用透视表法,中文部分是代码注释,即每行代码的意义。

    2、组合工作表

    Step1:打开一个空白工作表(合并后数据放在这个工作表里),然后同时按Alt+F11打开VBA编辑界面,如果没有任何反应请同时按Fn+Alt+F11,再不行我也帮不了你了。

    Step2:插入一个模块。不会的自行百度如何插入vba模块

    Step3:把下图的代码敲入到新建模块中(不想手动敲代码?方法在文末~

    Step4:按F5运行代码,按提示操作即可

    篇后语

    1、遇到问题要懂搜索,多思考,事后多总结

    2、梳理思路是关键

    3、VBA虽然老,但因为Office,它并没过时

    4、想学VBA基础知识,免费入门课程推荐,请戳:

    统一回复:数据分析的工具,这样选

    想学习更多实用、进阶Excel技能,更多实用数据分析知识,也欢迎加入我的《数说》会员,详情请戳:

    数据分析,精英人士必学的能力

    不想敲代码,直接获取『Excel文件』?

    直接获取Excel文件,拿起来就能用,更加方便!(代码还是开源的,可以自行调整修改)

    相关文章

    网友评论

      本文标题:Excel文件分拆和合并,七大方向你懂几个 | 附一键实现方案

      本文链接:https://www.haomeiwen.com/subject/ucoyactx.html