重点:遇到问题,我们要先理解问题,再思考解决方向,最择适合自己的方案!
实操:以下就是示范:
提出问题
在《数说》会员社群交流中,关于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文件,拿起来就能用,更加方便!(代码还是开源的,可以自行调整修改)
网友评论