EXCEL 如何制作瀑布图,对于有些数据做图表非常适合用瀑布图,比如生活开支......
Excel总表同列不 同数据批量 拆分到不同表
修法布施得聪明智慧,多分享让生活更美好。上回分享了《Excel总表按条件批量拆分多表(一表拆分多表)》,是同列数据类型间隔来分表。工作中遇到总表同列不同数据批量拆分到不同表,下面通过一实列分享处理过程,方便大家运用,并且通过这两个对比能达举一返三。
1Excel总表按条件批量拆分多表(一表拆分多表)
工具/原料
- Microsoft Office Excel 2007
- Excel VBA
实例问题
如下图:Excel同列不同数据拆分到不同sheet,注意里面有合并单元格。(百道知道问题)
处理方法/步骤
首先打开上例文件,如下图。
然后按下快捷键ALT F11打开VBA(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。
然后插入了一个模块1,在代码框中复制如下代码:
Sub 总表拆分表()
'2020-5-25 22:46:15
Dim r As Long, i As Long, mb(), k As Long, m As String
r = Range("a" & Rows.Count).End(xlUp).Row
ReDim mb(r - 1, 3)
k = 0
For i = 2 To r
If i = 2 Then
k = k 1
mb(k, 1) = Range("a" & i).Value
mb(k, 2) = i
Else
If mb(k, 1) > Range("a" & i).Value Then
k = k 1
mb(k, 1) = Range("a" & i).Value
mb(k, 2) = i
mb(k - 1, 3) = i - 1
End If
End If
Next i
mb(k, 3) = r
m = ActiveSheet.Name
ActiveSheet.Copy After:=ActiveSheet
m1 = ActiveSheet.Name
Rows("2:" & r).Delete
For i = 1 To k
Sheets(m1).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = mb(i, 1)
Sheets(m).Rows(mb(i, 2) & ":" & mb(i, 3)).Copy
Range("a2").Insert Shift:=xlDown
Range("a2").Select
Next i
Application.DisplayAlerts = False
Sheets(m1).Delete
End Sub
以上操作动态过程如下:
回到工作表窗口,然后运行【总表拆分表】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名),生成各表,运行过程如下图。
间隔重复数据又怎样处理
以上是客户名顺序不重复,如果是间隔重复用上面宏运行将会出现错误,无法完成,如下图。
将上面代码修改下,在上面模块1框复制如下代码:
Sub 总表间隔重复拆分表()
'2020-5-25 23:10:24
Dim r As Long, i As Long, mb(), k As Long, m As String, sh As Worksheet, j As Long
r = Range("a" & Rows.Count).End(xlUp).Row
ReDim mb(r - 1, 3)
k = 0
For i = 2 To r
If i = 2 Then
k = k 1
mb(k, 1) = Range("a" & i).Value
mb(k, 2) = i
Else
If mb(k, 1) > Range("a" & i).Value Then
k = k 1
mb(k, 1) = Range("a" & i).Value
mb(k, 2) = i
mb(k - 1, 3) = i - 1
End If
End If
Next i
mb(k, 3) = r
m = ActiveSheet.Name
ActiveSheet.Copy After:=ActiveSheet
m1 = ActiveSheet.Name
Rows("2:" & r).Delete
For i = 1 To k
j = 0
For Each sh In ActiveWorkbook.Sheets
If sh.Name = mb(i, 1) Then
j = 1
Exit For
End If
Next sh
If j = 0 Then
Sheets(m1).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = mb(i, 1)
Sheets(m).Rows(mb(i, 2) & ":" & mb(i, 3)).Copy
Range("a2").Insert Shift:=xlDown
Range("a2").Select
Else
Sheets(mb(i, 1)).Select
Sheets(m).Rows(mb(i, 2) & ":" & mb(i, 3)).Copy
Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Insert Shift:=xlDown
Range("a2").Select
End If
Next i
Application.DisplayAlerts = False
Sheets(m1).Delete
End Sub
回到工作表窗口,菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选宏名“总表间隔重复拆分表”点【执行】,生成结果。
如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!
注意事项
- 动态图片要双击成单独大图才能播放全过程。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!