有比这更快的Excel工作表拆分法吗?有,你就最牛!【Excel教程】
各位小伙伴有没有遇到过这样的问题:当我们把所有的信息汇总在一张表里后,又需要将这张大表按某一条件再拆分成多个工作表。那怎么才能实现呢?可能最笨的方法就是在原工作表筛选数据然后复制粘贴到新工作表,不过这种方法不适合数据多的案例,并且新工作表也需要一一重命名,显得繁琐。今天就给大家介绍两种快捷实用的工作表拆分方法。
如图,现在要把这个工作表的内容按城市拆分成多个工作表。
第1种:极速拆分——VBA(文中提供有代码)
VBA是EXCEL处理大量重复工作最好用的工具。不过很多人对VBA一窍不通,所以今天给大家分享一段代码,并且详细解释了如何根据实际表格修改代码值,方便大家在工作中使用。
(1)按住Alt+F11打开VBA编辑器,点击“插入”菜单下的“模块”。
(2)在右侧代码窗口输入下列代码。不想动手输入的可以加群下载已经准备好的代码文件,直接复制粘贴即可。
Sub拆分表()
Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String
Application.ScreenUpdating = False
With Worksheets("Sheet1")
iRow = .Range("A65535").End(xlUp).Row
iCol = .Range("IV1").End(xlToLeft).Column
t = 3
For i = 2 To iRow
str = .Cells(i, t).Value
On Error Resume Next
Set sh = Worksheets(str)
If Err.Number 0 Then
Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))
sh.Name = str
End If
sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value
iNum = sh.Range("A" & Rows.Count).End(xlUp).Row
sh.Range("A" & iNum + 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value
Next i
End With
Application.ScreenUpdating = True
End Sub
代码解析:
(3)代码输入完成后,点击菜单栏里的“运行子过程”。这样工作表就拆分完成了。
完成如下:
这样就通过这种方式一键完成工作表拆分了。
第2种:常规拆分——数据透视表
数据透视表真的非常好用,它不仅在数据统计分析上拥有绝对的优势,而且利用筛选页也可以帮助我们实现拆分工作表的功能。步骤如下:
(1)选择数据源任一单元格,单击插入选项卡下的“数据透视表”。位置选择现有工作表,单击确定。
(2)把要拆分的字段“城市”放到筛选字段,“日期”“业务员”字段放在行字段,“销售额”放在值字段。
(3)修改数据透视表格式,便于在生成新工作表的时候形成表格格式。
选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“以表格形式显示”。
选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“重复所有项目标签”。
选择“数据透视表工具”下方“设计”选项卡里的“分类汇总”下拉菜单的“不显示分类汇总”。
完成结果如下:
(4)最后把透视表拆分到各个工作表。选择“数据透视表工具”下方“分析”选项卡“数据透视表”功能块里的“选项”下拉菜单的“显示报表筛选页”,选定要显示的报表筛选页字段为“城市”。
(5)为了方便后续处理,把数据透视表修改成普通表格。选择第一个工作表 “北京”,按住Shift,点击最后一个工作表“重庆”,形成工作表组。这样就能批量对所有工作表进行统一操作。
全选复制粘贴为值。
删除前两行,再把日期这列列宽调整一下就完成了。结果如下:
数据透视表这种方法比较容易上手,但是步骤比较多,而VBA操作简单,但需要学习的东西很多。大家根据自己实际情况选择使用,如果有什么疑问或妙招,一起交流学习!
****部落窝教育-excel快速拆分技巧****
原创:夏雪/部落窝教育(未经同意,请勿转载)