excel拆分成若干工作表

生活 2019-03-17 17:47:32 1511

本文收集整理关于excel拆分成若干工作表的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:Excel如何进行跨工作表求和?
  • Q2:excel将一个工作表根据条件拆分成多个工作表
  • Q3:excel怎么将一张工作表拆分成多个工作表
  • Q4:如何调整Excel工作表的比例?
  • Q5:如何将一个excel工作表的数据拆分成多个sheet
  • 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工作表的比例?

    这里大致介绍三种方法。如图例所示

    文字版操作步骤:

    方法一:

    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将一个工作表根据条件拆分成多个工作簿

    相关文章
    一个单元格拆分成两行2019-02-11
    pdf拆分成多个文件发送2019-02-15
    京东拆分订单怎么退货2019-02-16
    一个excel拆分多个文件2019-02-17
    excel单元格拆分成多行2019-02-18
    合并单元格拆分后填充2019-02-19
    word拆分单元格怎么弄2019-02-22
    excel单元格拆分为二行2019-02-22
    excel自动拆分成多个表2019-02-25
    拆分单元格后自动填充2019-02-28