Excel教程:工作表拆分你是喜欢极速火箭还是慢摇普快?Excel神技能!

论坛 期权论坛 期权     
Excel教程自学平台   2019-7-13 06:42   2506   0

[url=]
[/url]
提示:小程序可以高清看本公众号视频教程
[iframe]https://v.qq.com/iframe/preview.html?width=500&height=375&auto=0&vid=v13500oeaim[/iframe]
[h1]苹果iOS用户请微信扫码学习[/h1]


[h1]年轻不羁,重薪出发[/h1]编按:
工作表有汇总就有拆分。如何快速拆分工作表呢?文章分享了两个方法。第一个方法提供给那些希望感觉火箭速度的人,第二种方法提供给那些喜欢坐高铁的人。第一种方法将用到VBA。对VBA小白的读者不要怕,作者贴心的提供了代码文件和具体的代码解释。收藏本篇文章,以后可以直接下载代码简单修改几个参数值就能用于自己的工作表拆分。 ”
各位小伙伴有没有遇到过这样的问题:当我们把所有的信息汇总在一张表里后,又需要将这张大表按某一条件再拆分成多个工作表。那怎么才能实现呢?可能最笨的方法就是在原工作表筛选数据然后复制粘贴到新工作表,不过这种方法不适合数据多的案例,并且新工作表也需要一一重命名,显得繁琐。今天就给大家介绍两种快捷实用的工作表拆分方法。

如图,现在要把这个工作表的内容按城市拆分成多个工作表。


第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

代码解析:
这里用红色文字表示需要根据实际修改的代码参数;'用于表示注释,其后的文字并不影响代码的运行,只是用于说明解释代码的。这里特意用灰色表示注释文字。
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 '从A列的最后一行开始向上获取工作表的行数,一般只改动Range中的列参数,如要工作表有效区域是从B列开始的,值就是B65535
     iCol = .Range("IV1").End(xlToLeft).Column '从最后列(IV)第1行开始向左获取工作表的列数,一般只改动Range中的行参数,如要工作表有效区域是从第2行开始的,值就是IV2
     t = 3 't为列数,设置依据哪一列进行拆分,譬如,如果是按E列拆分,这里就是t=5
        For i = 2 To iRow  'i为行数,设置从第几行开始获取拆分值,要根据工作表实际改动
            str = .Cells(i, t).Value '获取单元格(i, t)的值作为拆分后的表格名称
            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 '获取工作表标题,一般只改动Range的列值和Resize中的行值,譬如工作表的标题是从B列第3行开始的,则这句代码就变成 sh.Range("B1").Resize(3, iCol).Value = .Range("B1").Resize(3, iCol).Value'
            iNum = sh.Range("A" & Rows.Count).End(xlUp).Row '一般只改Range中的列值,如工作表是从B列开始的,这里就变成Range("B" & Rows.Count).End(xlUp).Row
            sh.Range("A" & iNum + 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value
            '在新表中粘贴工作表数据,一般只改动Range的列值,若工作表是从B列开始的,则就改成B变成Range("B" & iNum + 1).Resize(1, iCol).Value = .Range("B" & i).Resize(1, iCol).Value
        Next i
     End With
    Application.ScreenUpdating = True '打开屏幕刷新
End Sub
(3)代码输入完成后,点击菜单栏里的“运行子过程”。这样工作表就拆分完成了。


完成如下:


这样就通过这种方式一键完成工作表拆分了。

第2种:常规拆分——数据透视表    数据透视表真的非常好用,它不仅在数据统计分析上拥有绝对的优势,而且利用筛选页也可以帮助我们实现拆分工作表的功能。步骤如下:

(1)选择数据源任一单元格,单击插入选项卡下的“数据透视表”。位置选择现有工作表,单击确定。


(2)把要拆分的字段“城市”放到筛选字段,“日期”“业务员”字段放在行字段,“销售额”放在值字段。


(3)修改数据透视表格式,便于在生成新工作表的时候形成表格格式。
选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“以表格形式显示”。


选择“数据透视表工具”下方“设计”选项卡里的“报表布局”下拉菜单的“重复所有项目标签”。


选择“数据透视表工具”下方“设计”选项卡里的“分类汇总”下拉菜单的“不显示分类汇总”。


完成结果如下:


(4)最后把透视表拆分到各个工作表。选择“数据透视表工具”下方“分析”选项卡“数据透视表”功能块里的“选项”下拉菜单的“显示报表筛选页”,选定要显示的报表筛选页字段为“城市”。


(5)为了方便后续处理,把数据透视表修改成普通表格。选择第一个工作表 “北京”,按住Shift,点击最后一个工作表“重庆”,形成工作表组。这样就能批量对所有工作表进行统一操作。


全选复制粘贴为值。


删除前两行,再把日期这列列宽调整一下就完成了。结果如下:


数据透视表这种方法比较容易上手,但是步骤比较多,而VBA操作简单,但需要学习的东西很多。大家根据自己实际情况选择使用,觉得不错的话点赞吧!








VIP会员,所有课程免费学,包括更新!


[h1]年轻不羁,重“薪”出发[/h1]超级会员限时疯狂抢购
原价168元
惊喜裸价
98元
永久学习官网所有课程
也包括以后更新!
目前包括15门课程
办公软件:WORD,PPT,EXCEL
平面设计:PS,CDR,P图,AI,影楼后期
影视后期:AE
打字教程:五笔
绘画教程:转手绘,Q版,漫画,水彩,素描
(淘宝美工,产品精修,版式设计,摄影后期,PR,CAD录制中,预期2-3个月布)
课程会我们一直在开发中
你的VIP永远在升值
学习是投资
不是消费
为好好投资一把吧
新的一年
新气象
[h1]重“薪”出发[/h1]一个饭钱
一个快递
吃了就吃了
但学习
会让你升值加薪
....
心动
那就赶快行动吧
微信扫码报名学习

一次购买,所有课程享永久免费特权!不做大多数!

生命不息,奋斗不止!
开通超级会员,做特权学霸!
限时98元,学习本站所有的课程!包括以后更新
权限和单个的一样,没有区别,永久在线学习。
目前包括 15 门课程
办公软件:WORD,PPT,EXCEL
平面设计:PS,CDR,P图,AI,影后后期
影视后期:AE
打字教程:五笔
绘画教程:转手绘,Q版,漫画,水彩,素描
支持微信公众号+小程序+PC网站多平台学习

官网:www.92zhiqu.com



常见问题

①小爱同学:买了vip所有课程都能看是吗?

恩,是的,包括以后更新的(感谢支持,我们会坚持高品质的教学更新)



②小爱同学:你好,只能手机学习?

不是,支持微信公众号+小程序+PC网站多平台学习(我们也是学习的过来人,手机+电脑学习必不可少的)

(插一个好消息!!!爱知趣教育APP 预期半个月发布,目前开发完成。在申请软著和处理上架流程
支持安桌和IOS系统离线缓存视频学习)
③小爱同学:学习不懂的怎么办

提供售后解答的,支付了联系客服加群(支付了联系微信客服,截图一下即可)



④小爱同学:提供视频的课件素材?

恩,原创高清视频的,这些都有提供的(原创教程,这些是最基础的要求)


⑤小爱同学:学习有效期?
终身的,不限时间(自建网站+原创教程+爱知趣品牌保障)

⑥小学同学:网站支持加速看?
恩。目前手机小程序,电脑PC都支持1.5倍加速看和慢放
如果还有什么需要咨询的,联系微信客服


点击阅读原文全套WORD+PPT+EXCEL+PS视频教程
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:160
帖子:32
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP