关于excel里将一张工作表拆分成多个工作表的方法有很多,如果是偶然一次性的,而且需要拆分的表格也不多,那么手工筛选复制一下也不复杂。
但大部分情况下,这些都是重复性的工作,比如每月或每周向不同的部门提供给他们所需要的报表等等,这时如果还通过手工方法来完成,就会很浪费时间,所以,下面主要以批量或者快速刷新的方式实现工作表拆分的方法为例进行说明。
一、数据透视3步搞定工作表拆分
用数据透视表对表格进行拆分非常简单,只需要3个简单的步骤即可,具体如下:
Step01、插入数据透视表
Step02、将分拆条件拖入筛选框(如果拆分结果表需要保留该列,在拆分前注意复制一列)
Step03、点击【选项】-【显示报表筛选页】,如下图所示:
选择用来拆分的筛选条件:
通过以上简单的3步就完成了所有数据表的拆分,并且分表的名称直接按照分类(拆分条件)命名,如下图所示:
二、Power Query实现固定分类的工作表一键刷新式拆分
使用数据透视的方式进行工作表的拆分操作很简单,但是存在2个问题:
1、拆分后的工作表仍然是数据透视表
2、拆分后的每个表均包含了所有数据,只是在选项上进行了数据的选择而已
因此,如果是类似要分发给不同部门使用的报表,通过数据透视表的方式得到的结果并不适用(会将所有数据发给各个部门)——而这种情况是我碰到的最常见的。
因此,可以考虑另一个办法,采用Excel2016新功能Power Query(Excel2010或2013请到微软官方下载相应的插件)将拆分报表的过程固化下来,虽然第一次操作时需要一个表一个表地设置,但是,一旦做好后,后续再次拆分时,即可以直接一键刷新。
以下以将总表拆分成2个不同的分表为例,方法如下:
Step01、将总表加载到Power Query中
Step02、按需要筛序要拆分的第1个表的数据,并可按需要进一步增删相应的数据列等处理
Step03、复制拆分出来的表1,用于构造第2个表
Step04、将复制出来的表中的数据处理步骤删掉(如果只是筛选数据的不同,可以直接修改筛选步骤的内容即可)
Step05、按需要对第2个分表的数据进行进一步的处理
以上通过简单的5个步骤生成了2个分表,如果需要继续增加其他分表,可重复步骤Step03~Step05。所有需要的表格生成后,即可将结果返回Excel中,形成不同的分表,如下图所示:
这样,以后只要单击全部刷新即可得到最新的拆分结果,如下图所示:
三、VBA实现终极动态拆分
对于第二种Power Query的拆分方法,也存在一个问题:即如果需要拆分出来的表格个数并不是固定的,那就无法实现了——这是目前Power Query的一个弱点(汇总处理数据很强大,但不能动态拆分表),对于这种情况,只能通过VBA或者一些插件来完成来完成。关于这方面的代码网上有很多,搜索一下就能找到,实际工作中我用得不多,也懒得写了:
以上介绍了数据透视、Power Query及VBA三种批量拆分工作表的方法,各有优缺点,在我的实际工作过程中,按固定分类拆分的情况比较多,因此使用Power Query的方法比较多,而且拆分后可以根据不同的需要进一步做各分表的自动化处理,也就是说,不仅是拆分表,而且可以进一步对拆分的表自动处理成不同的形式。
总之,按实际需要选择即可。