最近已经不止一次被人问到:怎么将一个工作表拆分为多个工作表?一般这样的需求,是因为将1-12月的数据写在了一个工作表上,而现在又想将它拆分为12个单独的工作表,每个工作表单独一个月份.总结了一下,文艺青年的方法有三,普通青年请直接跳到最后一个办法
数据透视表
- 将你需要显示的字段放在数据透视表中,排列成你想要显示出来的样式
- 将需要拆分的字段放在数据透视表字段管理器中的'筛选器'中
- 选择数据透视表→数据透视表工具→分析→选项→显示报表筛选页
注:数据透视表→设计中的'不显示分类汇总,对行和列禁用总计,以表格显示显示,重复所有项目标签'这4个功能你可能在调整格式过程中需要用到
就这样,不用代码也不用函数,你就可以将你的表拆分为N多个表.接下来,就是见证奇迹的时刻:
是不是很神奇
这样操作之后,你发现那些表都是数据透视表,这时候怎么办呢?
- 选中第一个工作表,然后按住SHIFT,选中最后一个工作表,这样你可以选中许多连续的工作表(这时候工作簿名称后面会显示'工作组')
- 然后对你现在的表全选,粘贴为值( 如果不需要月份,还可以删除前几行数据)
VBA代码
- 在开发工具中找到Visual Basic,点击打开的窗口叫VBE.
- 在其中点击
这个下拉箭头,选择插入模块
- 然后复制下面的代码到模块当中,调整部分参数,点击
运行代码
插入并运行代码的GIF如下
万金油公式
- 新建一个工作表,输入标题,并在相同的位置放入相同的字段,其他地方留空.例如数据源D列是月份,你要按月份拆分的话,在新建的工作表中D列输入月份,像这样
- 然后在A1输入以下公式:假设数据表名为数据源,并且你的数据到了499行,且依据字段在D列的情况下.其他需要根据需求进行更改=IFERROR(INDEX(数据源!A1:D499,SMALL(IF(数据源!D1:D499=D2,ROW(1:499),9999),ROW(A1)),COLUMN(A1)),"")
- 然后按CTRL SHIFT ENTER三键结束(这样结束后公式两边会多出来一对大括号,表示这是数组公式)
- 然后就是将你的依据字段以及公式尽可能的下拉,一直拉到万金油公式显示空白,就表示只有这么多数据了
- 另外11个月的操作同样如此...
复制粘贴
然后还有最后一种,当然也是最厉害的一种了.慢慢复制粘贴然后删除吧.