本文收集整理关于excel拆分成若干工作表的相关议题,使用内容导航快速到达。
内容导航:
Q1:Excel如何进行跨工作表求和?
跨工作表求和在Excel应用中是非常常用的工作场景,今天就把跨工作表求和的所有方法以往打尽。
001、创建工作组进行求和
如图所示,是部门党员1-4月的缴费明细,每个月的缴费清单放到了一个工作表中。我们需要求出每个月缴纳党费的总额。
可以先选中第一个工作表(即"1月"工作表)然后按Shift见,再选中最后一个工作表,这样所选中的工作表就会成为一个工作表组。
生成工作组之后,只需要在"1月"工作表中D11单元格进行一个月的党费求和,其他工作表便都相应完成了求和。
002、对所有工作表中的同一区域求和
同样的数据,我们不对月份进行求和,这次需要对每个人1到4月所缴纳党费进行求和,改如何写公式?
如图在汇总工作表中写入公式=sum(*!D2),然后向下填充。公式解读:这里面的*是通配符,代表了除了当前工作表以外的所有工作表,也就是案例中的1月到4月这4个工作表。这样就能汇总出不同工作表对应位置的数值之和。
细心的同学会发现,输入公式=sum(*!D2)后,编辑栏里面的公式自动变成了=SUM(1月:4月!D2),这就是sum()多表求和的统一的语法:=SUM(开始表格:结束表格!区域)
注意:语法里面的开始表格和结束表格只看相对位置,和表格名称没有关系,如果在这两个表格中间插入新的表格,也会自动加入计算的。003、在同一个工作表中汇总不同工作表数值之和
还有一个情况是,我们需要在同一个工作表中,将分散在不同表中的数据进行汇总,如图所示,在汇总表中汇总每个月的党费之和。
在汇总表B2单元格中输入公式:=SUM(INDIRECT(A2&"!$D$2:$D$10")),然后将其向下复制填充,即可求出每一个工作表中的数值之后。注意A列月份的名称要和工作表的名称完全一致。
这里面主要是通过indirect函数实现了间接引用,即通过汇总表单元格A2:A5中的值和工作表名称一致这层关系,实现了间接访问相应的工作表。004、跨工作表条件求和
如下图所示在汇总表中分别计算出1月份人力部和2月份财务部的党费之和,这涉及到了条件求和,不能简单的使用SUM,而要用SUMIF函数。
可在汇总表C2单元格中输入下面公式:=SUMIF(INDIRECT(A2&"!$C$2:$C$10"),B2,INDIRECT(A2&"!$D$2:$D$10"))
向下填充即可求出条件求和的汇总结果,如图所示。
「精进Excel」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!Q2:excel将一个工作表根据条件拆分成多个工作表
原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。
excel将一个工作表根据条件拆分成多个工作表
点击【开发工具】-【Visual Basic】或者Alt+F11的快捷键进入VBE编辑界面。
excel将一个工作表根据条件拆分成多个工作表
如下图所示插入一个新的模块。
excel将一个工作表根据条件拆分成多个工作表
excel将一个工作表根据条件拆分成多个工作表
如下图,粘贴下列代码在模块中:
Sub CFGZB()
Dim myRange As Variant
Dim myArray
Dim titleRange As Range
Dim title As String
Dim columnNum As Integer
myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)
myArray = WorksheetFunction.Transpose(myRange)
Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)
title = titleRange.Value
columnNum = titleRange.Column
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim i&, Myr&, Arr, num&
Dim d, k
For i = Sheets.Count To 1 Step -1、
If Sheets(i).Name <> "数据源" Then
Sheets(i).Delete
End If
Next i
Set d = CreateObject("Scripting.Dictionary")
Myr = Worksheets("数据源").UsedRange.Rows.Count
Arr = Worksheets("数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum))
For i = 1 To UBound(Arr)
d(Arr(i, 1)) = ""
Next
k = d.keys
For i = 0 To UBound(k)
Set conn = CreateObject("adodb.connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select * from [数据源$] where " & title & " = " & k(i) & ""
Worksheets.Add after:=Sheets(Sheets.Count)
With ActiveSheet
.Name = k(i)
For num = 1 To UBound(myArray)
.Cells(1, num) = myArray(num, 1)
Next num
.Range("A2").CopyFromRecordset conn.Execute(Sql)
End With
Sheets(1).Select
Sheets(1).Cells.Select
Selection.Copy
Worksheets(Sheets.Count).Activate
ActiveSheet.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Next i
conn.Close
Set conn = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
excel将一个工作表根据条件拆分成多个工作表
如下图所示,插入一个控件按钮,并指定宏到刚才插入的模块代码。
excel将一个工作表根据条件拆分成多个工作表
excel将一个工作表根据条件拆分成多个工作表
点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。
excel将一个工作表根据条件拆分成多个工作表
excel将一个工作表根据条件拆分成多个工作表
excel将一个工作表根据条件拆分成多个工作表
excel将一个工作表根据条件拆分成多个工作表
代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示:
excel将一个工作表根据条件拆分成多个工作表
注意:
1)原始数据表要从第一行开始有数据,并且不能有合并单元格;
2)打开工作簿时需要开启宏,否则将无法运行代码。
Q3:excel怎么将一张工作表拆分成多个工作表
excel将一张工作表拆分成多个工作表方法如下:
打开需要编辑的Excel文档。如图所示,工作簿下方有很多工作表。现在需要将这些工作表单独拆分开成一个个工作簿。
右键任意一个工作表标签,在弹出的下拉列表中选择查看代码。即弹出代码窗口。如下图所示。
点击菜单插入-模块 在弹出的模块对话框中 输入以下代码:
Private Sub 分拆工作表()
Dim sht As Worksheet
Dim MyBook As Workbook
Set MyBook = ActiveWorkbook
For Each sht In MyBook.Sheets
sht.Copy
ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=xlNormal 将工作簿另存为EXCEL默认格式
ActiveWorkbook.Close
Next
MsgBox "文件已经被分拆完毕!"
End Sub
单击运行-运行子过程|窗体 几秒过后 弹出提示窗口“文件已被拆分完毕” 如下图所示
返回Excel工作簿文件所在路径 查看 如下图所示 原先工作簿中的工作表已经成为单独的工作簿了!
这里大致介绍三种方法。如图例所示
文字版操作步骤:
方法一:
Excel工作簿的右下角有显示比例调整功能,可以利用鼠标对工作表的显示比例进行调整
方法二:
键盘按住“Ctrl”键,滚动鼠标滚轮来实现工作表显示比例的调整。
方法三:
在“视图”选项卡中。调出“显示比例”命令窗口,在该窗口界面中进行相应显示比例的调整。
以上是对于工作表显示比例调整的相关回答,希望对您有所帮助。
Q5:如何将一个excel工作表的数据拆分成多个sheet
首先来看一下原始数据,A列是日期,B列是姓名,后面是名称和数量。需要根据B列的姓名将每个人的数据记录存储为一个单独的工作簿文件。
excel将一个工作表根据条件拆分成多个工作簿
按Alt+F11进入VBE界面。
excel将一个工作表根据条件拆分成多个工作簿
选择【插入】-【模块】插入一个模块。
excel将一个工作表根据条件拆分成多个工作簿
excel将一个工作表根据条件拆分成多个工作簿
双击模块名称,在右侧的空白处粘贴下列代码:
Sub CFGZB()
Dim myRange As Variant
Dim myArray
Dim titleRange As Range
Dim title As String
Dim columnNum As Integer
myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)
myArray = WorksheetFunction.Transpose(myRange)
Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)
title = titleRange.Value
columnNum = titleRange.Column
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim i&, Myr&, Arr, num&
Dim d, k
For i = Sheets.Count To 1 Step -1、
If Sheets(i).Name <> "数据源" Then
Sheets(i).Delete
End If
Next i
Set d = CreateObject("Scripting.Dictionary")
Myr = Worksheets("数据源").UsedRange.Rows.Count
Arr = Worksheets("数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum))
For i = 1 To UBound(Arr)
d(Arr(i, 1)) = ""
Next
k = d.keys
For i = 0 To UBound(k)
Set conn = CreateObject("adodb.connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select * from [数据源$] where " & title & " = " & k(i) & ""
Dim Nowbook As Workbook
Set Nowbook = Workbooks.Add
With Nowbook
With .Sheets(1)
.Name = k(i)
For num = 1 To UBound(myArray)
.Cells(1, num) = myArray(num, 1)
Next num
.Range("A2").CopyFromRecordset conn.Execute(Sql)
End With
End With
ThisWorkbook.Activate
Sheets(1).Cells.Select
Selection.Copy
Workbooks(Nowbook.Name).Activate
ActiveSheet.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Nowbook.SaveAs ThisWorkbook.Path & "\" & k(i)
Nowbook.Close True
Set Nowbook = Nothing
Next i
conn.Close
Set conn = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
excel将一个工作表根据条件拆分成多个工作簿
返回Excel工作表界面,选择【开发工具】-【插入】-【表单控件】-【按钮】。
excel将一个工作表根据条件拆分成多个工作簿
选择完插入按钮后会弹出指定宏的界面,选定刚才插入的“CFGZB”宏,并确定。
excel将一个工作表根据条件拆分成多个工作簿
点击插入的按钮,根据提示选择标题行。
excel将一个工作表根据条件拆分成多个工作簿
excel将一个工作表根据条件拆分成多个工作簿
根据提示,选择要拆分的列标题,本例是“姓名”。
excel将一个工作表根据条件拆分成多个工作簿
excel将一个工作表根据条件拆分成多个工作簿
再次点击确定后,宏会自动运行。运行完毕后工作簿所在的同路径下会出现以每个人名命名的独立工作簿。打开每个单个工作簿就可以看到每个人自己的数据记录。
excel将一个工作表根据条件拆分成多个工作簿
excel将一个工作表根据条件拆分成多个工作簿