精华内容
下载资源
问答
  • 2021-12-05 11:44:53

    因为有人询问合并计算,对VBA略知一些,我就写了一点,有需要的人可以借鉴。

    新建一个工作表,粘贴到模块,F5运行,就可以达到左列合计,左列为一列。

    下面是代码:

    无源数据格式

    Sub 多工作簿合计()
    Application.ScreenUpdating = False
    Dim Wb As Workbook, vrtSelectedItem As Variant, Mysheet As Worksheet, CellAddress
    Dim ShRan As String, Arr() As String, s As Long, Spt, NewPath As String, Bool As Boolean
    On Error Resume Next '遇到错误继续执行
    With Application.FileDialog(msoFileDialogFilePicker)
       .AllowMultiSelect = True
       '多选
      .InitialFileName = ThisWorkbook.Path & "\"
      '默认路径
      .Title = "选择文件"
      '窗口标题
      .Filters.Clear
       '清除文件过滤器
      .Filters.Add "全部文件", "*.*"
      .Filters.Add "Excel文件", "*.xlsm"
      .Filters.Add "Excel文件", "*.xls"
      .Filters.Add "Excel文件", "*.xlsx;*.xls"
       '设置文件过滤器,可以指定多个扩展名,每个扩展名都必须用分号分隔。 例如,可以将参数分配给字符串:".txt;.htm"。
      Cells.Clear
      Bool = True
      If .Show = -1 Then
        For Each vrtSelectedItem In .SelectedItems
          Spt = Split(vrtSelectedItem, "\")
          NewPath = "'" & Replace(vrtSelectedItem, Spt(UBound(Spt)), "[" & Spt(UBound(Spt)) & "]")
          Set Wb = Workbooks.Open(vrtSelectedItem)
          For Each Mysheet In Wb.Worksheets
            '复制标题行,不带格式粘贴
            If Bool Then
              Mysheet.Rows("1:1").Copy
              Cells(1, 1).PasteSpecial Paste:=xlPasteValues
              Bool = False
              Application.CutCopyMode = False
            End If
            ReDim Preserve Arr(s)
            '获取不包含首行的当前区域
            CellAddress = Split(Mysheet.Cells(2, 1).CurrentRegion.Address, ":")
            ShRan = Mysheet.Name & "'!" & Mysheet.Range("A2:" & CellAddress(1)).Address(ReferenceStyle:=xlR1C1) '数据区域
            Arr(s) = NewPath & ShRan
            s = s + 1
          Next Mysheet
          Wb.Close
        Next vrtSelectedItem
        Set Wb = Nothing
      End If
    End With
    Range("A2").Consolidate Sources:=Arr, Function:=xlSum, TopRow:=False, LeftColumn:=True, CreateLinks:=False
    Application.ScreenUpdating = True
    End Sub
    

    下面是有源数据格式的

    Sub 汇总合计() '保留源数据格式
    Application.ScreenUpdating = False
    Dim Wb As Workbook, vrtSelectedItem, Mysheet As Worksheet, i As Long, Bool As Boolean, Start_row
    'On Error Resume Next '容错
    With Application.FileDialog(msoFileDialogFilePicker)
      .AllowMultiSelect = True
       '多选
      .InitialFileName = ThisWorkbook.Path & "\"
      '默认路径
      .Title = "选择文件"
      '窗口标题
      .Filters.Clear
       '清除文件过滤器
      .Filters.Add "全部文件", "*.*"
      .Filters.Add "Excel文件", "*.xlsx;*.xls" '可以指定多个扩展名,每个扩展名都必须用分号分隔。 例如,可以将参数分配给字符串:".txt;.htm"。
      .Filters.Add "Excel文件", "*.xlsm"
      .Filters.Add "Excel文件", "*.xls"
      '设置文件过滤器
      
      Cells.Clear
      Bool = True
      If .Show = -1 Then
        For Each vrtSelectedItem In .SelectedItems
          Set Wb = Workbooks.Open(vrtSelectedItem)
          With ThisWorkbook.ActiveSheet
            For Each Mysheet In Wb.Worksheets
              If Bool = True Then Start_row = 1 Else Start_row = 2: Bool = False
              '获取不包含首行的当前区域
              CellAddress = Split(Mysheet.Cells(1, 1).CurrentRegion.Address, ":")
              Mysheet.Range("A" & Start_row & ":" & CellAddress(1)).Copy .Cells(i + 1, 1)
              
              i = Mysheet.Range("A1").CurrentRegion.Rows.Count
            Next
          End With
          Wb.Close
        Next
        Set Wb = Nothing
      End If
    End With
    
    Dim RowCount As Long, MyRange As String, ColCount As Long, DataCol As Long, E_Coords, Act_sh
    
    With ThisWorkbook.ActiveSheet
        RowCount = .Cells(Rows.Count, 2).End(xlUp).Row
        ColCount = .Cells(1, 1).CurrentRegion.Columns.Count
        Act_sh = .Cells(1, 1).CurrentRegion.Address
        .Range(Act_sh).Copy
            With .Cells(1, ColCount + 1)
               .PasteSpecial Paste:=xlPasteColumnWidths
               .PasteSpecial Paste:=xlPasteFormats
            End With
        Application.CutCopyMode = False
        E_Coords = Split(Act_sh, ":")(1)
        MyRange = ActiveSheet.Name & "!" & .Range("A2:" & E_Coords).Address(ReferenceStyle:=xlR1C1)
        .Cells(2, ColCount + 1).Consolidate Sources:=MyRange, _
                Function:=xlSum, TopRow:=False, LeftColumn:=True, CreateLinks:=False
                
        .Range("A2:" & E_Coords).Delete Shift:=xlToLeft
      
        .Range(Range("A1").CurrentRegion.Rows.Count + 1 & ":" & .Cells.Rows.Count).ClearFormats
    End With
    Application.ScreenUpdating = True
    End Sub

    更多相关内容
  • 很久没有更新过自己的博客了,今天呢,重新回归我们的大家庭,和大家一同学习。最近在学习关于数据分析相关的技术,其中,涉及到Excel...今天首先分享一下,在我们工作中常会涉及到的一工具Excel的使用,利用Excel

    很久没有更新过自己的博客了,今天呢,重新回归我们的大家庭,和大家一同学习。最近在学习关于数据分析相关的技术,其中,涉及到Excel数据处理与分析、ExcelBI、Power BI Desktop商业智能分析与实战、Power BI实战、Tableau可视化数据分析、SQL分析、Fine BI、Python数据分析与网络爬虫,最后还会涉及到Hive大数据分析,如果有想学习这方面的,可以关注博主之后的博文动态,可以一同学习交流。
    今天首先分享一下,在我们工作中常会涉及到的一个工具Excel的使用,利用Excel进行多张表的合并计算。
    ***首先,给定一个场景:某公司销售部,在年底想要统计一下,关于产品1,产品2,产品3,产品4,产品5在今年四个季度的销售情况,其中该公司在,北京、上海各有一家分公司,我们需要统计两地的销售情况以及总销售情况。***

    1. 首先,创建一个工作簿,包含四个工作表:北京销售情况表1,上海销售情况表1,总销售情况表和Sheet4;
    2. 选择北京销售情况表1,同时按住CTRL,再选择上海销售情况表1和总销售情况表,这样就可以做到在编辑其中一个表时,其他两张表也能被编辑了。
      在这里插入图片描述
    3. 将表进行编辑之后,我们可以插入一些函数,对季度每个产品我们使用随机函数(RANDBETWEEN)生成销量,之后对合计我们插入求和函数;在这里插入图片描述
    4. 然后,选择Sheet4表,这样就可以解除其他三张表的合并功能。我们需要做的就是将北京上海的销售数据复制然后再选择粘贴其值到各自表中,这样我们的表中的数据就不会改变。
    5. 最后,我们需要做的就是,将两张表中的数据合并计算到总销售情况表中。操作,选择数据存放的位置->数据主选项卡下的合并计算->引用位置,选择北京销售情况表1下的数据,并将其添加到所有引用位置->应用位置,再选择上海销售情况表1,并将其添加到所有引用位置->标签位置,首行和最左列也需要勾选上->之后,点击确定即可。
    6. 这样总销售情况表中的数据就是各种产品的总销售情况了。
      在这里插入图片描述
    展开全文
  • 办公的时候想要合并多个Excel表格,一个个来拷贝粘贴,如果文件很多就要花很多时间,前面试了很多种方法,先用office和Python,感觉还是有点麻烦,后面自己写了shell脚本。
  • 更改多个Excel工作表数据合并计算.docx
  • 如何快速把多个excel表格合并成一个excel呢?首先,我们需要把多个excel都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。用microsoft excel打开新建的excel,并右键单击sheet1,或者按ALT+F11...

    如何快速把多个excel表格合并成一个excel表呢?

    首先,我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。

    aaa8f5c80bf8b726cfb5c95417f42fc8.png

    用microsoft excel打开新建的excel表,并右键单击sheet1,或者按ALT+F11,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。

    39c95688c190fbeb1419ec96cebcd567.png

    然后我们把下面这些宏计算的代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示:

    Sub 合并当前目录下所有工作簿的全部工作表()

    Dim MyPath, MyName, AWbName

    Dim Wb As Workbook, WbN As String

    Dim G As Long

    Dim Num As Long

    Dim BOX As String

    Application.ScreenUpdating = False

    MyPath = ActiveWorkbook.Path

    MyName = Dir(MyPath & "\" & "*.xls")

    AWbName = ActiveWorkbook.Name

    Num = 0

    Do While MyName <> ""

    If MyName <> AWbName Then

    Set Wb = Workbooks.Open(MyPath & "\" & MyName)

    Num = Num + 1

    With Workbooks(1).ActiveSheet

    .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

    For G = 1 To Sheets.Count

    Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)

    Next

    WbN = WbN & Chr(13) & Wb.Name

    Wb.Close False

    End With

    End If

    MyName = Dir

    Loop

    Range("B1").Select

    Application.ScreenUpdating = True

    MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

    End Sub

    7b0d272becf90173fb3fe3e9f1bbf054.png

    点击运行,等待一会合并表格就完成了。

    3c8c883831ff244d54d08ab850e3b553.png

    需要说明的是:B65536这个数值可以修改增加,根据内容多少,修改参数

    对使用WPS的用户,可以选择WPS专业版,普通版没有VBA程序。

    展开全文
  • 在excel中,经常会遇到多个表格的数据需要汇总,但是有时候每个表格的顺序、项目不一定完全相同,比如下图中,动图一是五个不完全相同的工作表,如何将五个工作表的数据汇总到一个工作表中(图二所示),并对这些数据...

    在excel中,经常会遇到多个表格的数据需要汇总,但是有时候每个表格的顺序、项目不一定完全相同,比如下图中,动图一是五个不完全相同的工作表,如何将五个工作表的数据汇总到一个工作表中(图二所示),并对这些数据进行求和或者其他运算呢?这里就为大家介绍一下合并计算的功能。

    3a05f927ee1dfdf05f1d7ae0541d6053.gif

    01ba7c6fd503f1e38f19588fe893a99a.png

    首先,我们新建一个空白的工作表,然后打开数据选项卡——合并计算,引用位置选择第一个工作表的A列和B列区域,然后点添加添加到下面的所有引用位置框中,其他几个工作表依次执行同样的操作。添加完成后在下面的标签位置选择首行和最左列,点击确定,基本就完成了,具体操作如下面动图所示。

    ccf4f72a80fb0bb811a34db6b17bae61.gif

    然后,我们对表格进行一下必要的加工,鼠标确认定位到区域内,按ctrl+T生成分析表,如果求和的话行和列分别按alt+=即可,也可以进行其他运算或者迷你图分析。

    51c2815c4cfe9ecc0e576c2de006b92b.gif

    这就是利用合并计算汇总多个工作表数据,其实合并计算还可以对比两列顺序不同数据的差异,比如盘点数和账面数核对,银行账和日记账核对等等。操作和本文所讲的基本相同,区别就是生成新的工作表后是求两列数据的差而不是上面介绍的求和。

    展开全文
  • 如何快速把多个excel表格合并成一个excel呢?首先,我们需要把多个excel都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。用microsoft excel打开新建的excel,并右键单击sheet1,或者按ALT+F11...
  • 目的:按照“业务员”对“商品”的销售情况进行进行汇总。方法:1、新建空白工作表,【数据】-【合并计算】。...解读:1、多工作表合并计算时,数据源中国不能包含合并区域及表头。2、如果行的内容不同...
  • Excel工作簿工作表合并计算.rar,合并计算包括对同一个工作簿中多个工作表合并计算、对不同工作簿工作表合并计算。本示例文件均有案例予以演示,前者使用的案例为“合并计算员工年度工资”,后者使用的案例为...
  • 多表格数据汇总可以使用透视,使用函数,今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法,合并计算分为两种情况,一种情况是:多个表格类别一致数据不同,另一种情况是类别不一致,数据也...
  • 首先,请大家打开电脑中的Excel软件,然后将目标表格打开,我们选中表格数据,接着点击屏幕顶部的【合并计算】这一项。2第二步,屏幕中出现了如图所示的新弹窗,然后点击其中的【数据统计】这一项。3.第三步,...
  • 数据合并计算,顾名思义,就是能将多个区域的数据合并,可以是跨,合并之后进行加减乘除计算,这就是本文为大家讲解的WPS表格的数据合并计算功能。下面以图文的形式将步骤演示下,感兴趣的朋友可以借此机会学习下...
  • Excel用SQL合并多个工作表

    千次阅读 2021-04-07 09:08:35
    作者:iamlaosong 需求是统计全省各地市全年12月的...其实可以用SQL语句合并12各月份的数据(没有数据的月份做带表头的空),然后对这个合并数据透视统计就可以了。这样每次数据变动时,只要刷新一
  • 现实中会遇到很需求,合并列,例如要显示一名学生的各门课程成绩。 html实现 使用html实现是比较简单的,利用table标签的rowspan属性即可,代码如下: 姓名 课程数 课程名称 成绩 张三 ...
  • 工作中有时候我们需要将多个Excel表格合并到一个表格中。如果是二逼青年,会选择一个个复制,痛苦不堪。如果是佛系青年,那么就会选择用VBA来一键搞定多个Excel表格合并至一个表格。请将1月至6月的表格合并在一...
  • 原创作者:兰色幻想-赵志东 转自:Excel精英培训工作簿中有多个Excel表格现需要把这4个表格合并到一个表格中,结果如下图所示。由于每个表格的 A列姓名顺序、个数均不相同,其他列内容也完全不一样,所以手工合并太...
  • excel如何快速把多个工作表合并到一个excel表excel如何快速把多个工作表合并到一个excel表 有这么一种情况,就是我们有很多张excel,而且excel表里面的公式基本一样,我们就想快速的把这些excel合并在一起,意思在...
  • excel合并计算的方法步骤详解

    千次阅读 2021-06-23 00:04:01
    ↓↓↓更的excel怎么做表格的资讯(详情入口↓↓↓)excel合并计算的方法以三库的库存为例,每仓库库存型号和数量都不一样,其中其中有重合,现在我们怎么才能计算出汇总库存量出来。首先在这三张库存后新建...
  • EXCEL如何计算合并单元格后面的数据的和使用这,支持合并单元格求和公式。操作如下图:工具地址:www.excelfb.com点击:Excel自动写公式工具据汉字描述写公式,支持合并单元格公式)点击:汇总满足条件的行(或所有...
  • EXCEL使用vlookup函数合并多个工作表

    千次阅读 2021-03-17 21:34:52
    EXCEL使用vlookup函数合并多个工作表 vlookup函数功能比较强大,不仅可以在同一个表格中进行使用,还可以对两个不同的表格进行匹配查找。可以进行两个表的合并。 例: 表1 软件工程学生信息表 表2 计算机学院学生...
  • 工作中我们遇到很标题相同的Excel表格合并怎么办? 有的人说VB的宏来编写代码来完成,对于不懂代码的人就只能干瞪眼用复制粘贴 当我们处理10范围以内表格的时候还是能接受这种方式的,处理10-20就有点吃力...
  • excel如何使用合并计算

    千次阅读 2021-06-23 00:06:04
    3、此时进入“合并计算-引用位置”状态,用鼠标拖选表格区域。选定之后会在文本框做出显示,单击范围选择按钮返回。4、返回“合并计算”对话框,单击“添加”按钮,即可将所选区域添加到“所有引用位置”列表框中。5...
  • 多个EXCEL表格求和在EXCEL汇总中点击数据/合并计算,函数选择求和,引用位置选择第1张表,进行添加,再选择第2张表,进行添加,以此类推。根据的样式选择首行、最左列,可二者全选,确定。怎样在EXCEL中做到多个...
  • Excel2019中合并计算的使用方法

    千次阅读 2021-06-23 00:04:09
    Excel中的合并计算是指通过合并计算的方法来汇总一个或多个源区域中的数据,当多个工作表中的字段完全相同但排列比较混乱时,便可利用该功能来进行合并计算,本文图文详解Excel2019中合并计算的使用方法。...
  • 1. 合并计算 如下表格-根据日期把日期相同的金额求和值。 选择单元格(求和到哪个位置)-> 合并计算->求和->选择求和区域->添加->选中首行,最左列->确定 确定后效果如下: 填好日期头,...
  • 1、将要合并的Excel放在同一个...'功能:把多个excel工作簿的第一个sh eet工作表合并到一个excel工作簿的多个sheet工作表,新工作表的名称等于原工作簿的名称 Sub Books2Sheets() '定义对话框变量 Dim fd As Fi...
  • 多个Excel工作薄合并成一个工作薄如操作过程1、需要流程2、具体操作方法 1、需要流程 一共需要两步; 第一步:先将多个Excel工作薄合并成一个工作薄中的多个sheet...Sub 工作薄间工作表合并() Dim FileOpen Dim X As
  • wps表格多个sheet合并

    千次阅读 2020-12-20 14:19:36
    一天负责十几张表格应该是正常事情,但是这十几张表格大多数结构类似,主要由于上传的部门不一样或者是分公司上传过来,当你一遍遍复制粘贴,老板在聊天软件上不停地消息催促你的汇总。就会有有趣的事情发生了。...
  • 快速将多个excel表合并成一个excel表---内附代码

    万次阅读 热门讨论 2019-05-05 17:03:33
    1、我们需要把多个excel都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。 2、用microsoft excel打开新建的excel,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。 3...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 202,509
精华内容 81,003
关键字:

多个表格合并计算