-
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进行多张表的合并计算,操作简单
2022-03-12 09:31:52很久没有更新过自己的博客了,今天呢,重新回归我们的大家庭,和大家一同学习。最近在学习关于数据分析相关的技术,其中,涉及到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,总销售情况表和Sheet4;
- 选择北京销售情况表1,同时按住CTRL,再选择上海销售情况表1和总销售情况表,这样就可以做到在编辑其中一个表时,其他两张表也能被编辑了。
- 将表进行编辑之后,我们可以插入一些函数,对季度每个产品我们使用随机函数(RANDBETWEEN)生成销量,之后对合计我们插入求和函数;
- 然后,选择Sheet4表,这样就可以解除其他三张表的合并功能。我们需要做的就是将北京上海的销售数据复制然后再选择粘贴其值到各自表中,这样我们的表中的数据就不会改变。
- 最后,我们需要做的就是,将两张表中的数据合并计算到总销售情况表中。操作,选择数据存放的位置->数据主选项卡下的合并计算->引用位置,选择北京销售情况表1下的数据,并将其添加到所有引用位置->应用位置,再选择上海销售情况表1,并将其添加到所有引用位置->标签位置,首行和最左列也需要勾选上->之后,点击确定即可。
- 这样总销售情况表中的数据就是各种产品的总销售情况了。
-
shell快速合并多个Excel表格.txt
2020-06-18 06:38:19办公的时候想要合并多个Excel表格,一个个来拷贝粘贴,如果文件很多就要花很多时间,前面试了很多种方法,先用office和Python,感觉还是有点麻烦,后面自己写了shell脚本。 -
更改多个Excel工作表数据合并计算.docx
2021-09-27 09:09:27更改多个Excel工作表数据合并计算.docx -
excel合并多个工作表_如何快速把多个excel表格合并成一个excel表
2020-11-18 11:40:18如何快速把多个excel表格合并成一个excel表呢?首先,我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。用microsoft excel打开新建的excel表,并右键单击sheet1,或者按ALT+F11...如何快速把多个excel表格合并成一个excel表呢?
首先,我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。
用microsoft excel打开新建的excel表,并右键单击sheet1,或者按ALT+F11,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。
然后我们把下面这些宏计算的代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示:
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
点击运行,等待一会合并表格就完成了。
需要说明的是:B65536这个数值可以修改增加,根据内容多少,修改参数
对使用WPS的用户,可以选择WPS专业版,普通版没有VBA程序。
-
excel合并多个工作表_excel汇总多个工作表数据的神器——合并计算
2020-11-18 11:14:40在excel中,经常会遇到多个表格的数据需要汇总,但是有时候每个表格的顺序、项目不一定完全相同,比如下图中,动图一是五个不完全相同的工作表,如何将五个工作表的数据汇总到一个工作表中(图二所示),并对这些数据...在excel中,经常会遇到多个表格的数据需要汇总,但是有时候每个表格的顺序、项目不一定完全相同,比如下图中,动图一是五个不完全相同的工作表,如何将五个工作表的数据汇总到一个工作表中(图二所示),并对这些数据进行求和或者其他运算呢?这里就为大家介绍一下合并计算的功能。
首先,我们新建一个空白的工作表,然后打开数据选项卡——合并计算,引用位置选择第一个工作表的A列和B列区域,然后点添加添加到下面的所有引用位置框中,其他几个工作表依次执行同样的操作。添加完成后在下面的标签位置选择首行和最左列,点击确定,基本就完成了,具体操作如下面动图所示。
然后,我们对表格进行一下必要的加工,鼠标确认定位到区域内,按ctrl+T生成分析表,如果求和的话行和列分别按alt+=即可,也可以进行其他运算或者迷你图分析。
这就是利用合并计算汇总多个工作表数据,其实合并计算还可以对比两列顺序不同数据的差异,比如盘点数和账面数核对,银行账和日记账核对等等。操作和本文所讲的基本相同,区别就是生成新的工作表后是求两列数据的差而不是上面介绍的求和。
-
如何快速把多个excel表格合并成一个excel表
2021-02-01 03:15:31如何快速把多个excel表格合并成一个excel表呢?首先,我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel文件。用microsoft excel打开新建的excel表,并右键单击sheet1,或者按ALT+F11... -
excel合并多个工作表_Excel对多个工作表的数据进行合并统计
2020-11-18 11:40:49目的:按照“业务员”对“商品”的销售情况进行进行汇总。方法:1、新建空白工作表,【数据】-【合并计算】。...解读:1、多工作表合并计算时,数据源中国不能包含合并区域及表头。2、如果行的内容不同... -
Excel工作簿工作表的合并计算.rar
2019-09-26 09:42:49Excel工作簿工作表的合并计算.rar,合并计算包括对同一个工作簿中多个工作表的合并计算、对不同工作簿工作表的合并计算。本示例文件均有案例予以演示,前者使用的案例为“合并计算员工年度工资”,后者使用的案例为... -
Excel合并计算完成多表格数据汇总求和
2020-05-03 15:44:06多表格数据汇总可以使用透视表,使用函数,今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法,合并计算分为两种情况,一种情况是:多个表格类别一致数据不同,另一种情况是类别不一致,数据也... -
怎么通过Excel软件把多张表数据合并在一张表里
2021-08-02 03:17:19首先,请大家打开电脑中的Excel软件,然后将目标表格打开,我们选中表格数据,接着点击屏幕顶部的【合并计算】这一项。2第二步,屏幕中出现了如图所示的新弹窗,然后点击其中的【数据统计】这一项。3.第三步,... -
WPS表格2013怎么进行数据合并计算将多个区域进行合并计算
2017-10-24 09:10:24数据合并计算,顾名思义,就是能将多个区域的数据合并,可以是跨表,合并之后进行加减乘除计算,这就是本文为大家讲解的WPS表格的数据合并计算功能。下面以图文的形式将步骤演示下,感兴趣的朋友可以借此机会学习下... -
Excel用SQL合并多个工作表
2021-04-07 09:08:35作者:iamlaosong 需求是统计全省各地市全年12个月的...其实可以用SQL语句合并12各月份的数据(没有数据的月份做个带表头的空表),然后对这个合并的表做个数据透视表统计就可以了。这样每次数据变动时,只要刷新一 -
Vue实现数据表格合并列rowspan效果
2020-12-29 13:20:57现实中会遇到很多需求,合并列,例如要显示一个名学生的各门课程成绩。 html实现 使用html实现是比较简单的,利用table标签的rowspan属性即可,代码如下: 姓名 课程数 课程名称 成绩 张三 ... -
快速合并多个表格至一个表格,VBA快速搞定
2020-12-29 02:36:09在工作中有时候我们需要将多个Excel表格合并到一个表格中。如果是二逼青年,会选择一个个复制,痛苦不堪。如果是佛系青年,那么就会选择用VBA来一键搞定多个Excel表格合并至一个表格。请将1月至6月的表格合并在一个... -
多个vue项目合并成一个_再见Vlookup,合并多个表格发现一个最简单方法
2020-11-18 11:40:18原创作者:兰色幻想-赵志东 转自:Excel精英培训工作簿中有多个Excel表格现需要把这4个表格合并到一个表格中,结果如下图所示。由于每个表格的 A列姓名顺序、个数均不相同,其他列内容也完全不一样,所以手工合并太... -
WPS怎么把几个工作表合并到一个工作表 - 卡饭网
2020-12-20 14:19:35excel如何快速把多个工作表合并到一个excel表excel如何快速把多个工作表合并到一个excel表 有这么一种情况,就是我们有很多张excel,而且excel表里面的公式基本一样,我们就想快速的把这些excel合并在一起,意思在... -
excel合并计算的方法步骤详解
2021-06-23 00:04:01↓↓↓更多的excel怎么做表格的资讯(详情入口↓↓↓)excel合并计算的方法以三个库的库存表为例,每个仓库库存型号和数量都不一样,其中其中有重合,现在我们怎么才能计算出汇总库存量出来。首先在这三张库存表后新建... -
“excel合并表格数据公式“如何把多个相同格式的Excel表格数据快速的合并到一张表格中
2021-07-30 01:52:03EXCEL如何计算出合并单元格后面的数据的和使用这个,支持合并单元格求和公式。操作如下图:工具地址:www.excelfb.com点击:Excel自动写公式工具据汉字描述写公式,支持合并单元格公式)点击:汇总满足条件的行(或所有... -
EXCEL使用vlookup函数合并多个工作表
2021-03-17 21:34:52EXCEL使用vlookup函数合并多个工作表 vlookup函数功能比较强大,不仅可以在同一个表格中进行使用,还可以对两个不同的表格进行匹配查找。可以进行两个表的合并。 例: 表1 软件工程学生信息表 表2 计算机学院学生... -
【Excel表格合并处理】多个相同标题的Excel表格怎么合并,如何用小工具来完成?
2020-05-21 10:04:04在工作中我们遇到很多标题相同的Excel表格合并怎么办? 有的人说VB的宏来编写代码来完成,对于不懂代码的人就只能干瞪眼用复制粘贴 当我们处理10个范围以内表格的时候还是能接受这种方式的,处理10-20个就有点吃力... -
excel如何使用合并计算
2021-06-23 00:06:043、此时进入“合并计算-引用位置”状态,用鼠标拖选表格区域。选定之后会在文本框做出显示,单击范围选择按钮返回。4、返回“合并计算”对话框,单击“添加”按钮,即可将所选区域添加到“所有引用位置”列表框中。5... -
多个excel表格某个数据合计-Excel怎么才能快速将几个表的某一列数据求和在一个...
2021-08-02 03:17:13多个EXCEL表格求和在EXCEL汇总表中点击数据/合并计算,函数选择求和,引用位置选择第1张表,进行添加,再选择第2张表,进行添加,以此类推。根据表的样式选择首行、最左列,可二者全选,确定。怎样在EXCEL中做到多个... -
Excel2019中合并计算的使用方法
2021-06-23 00:04:09Excel中的合并计算是指通过合并计算的方法来汇总一个或多个源区域中的数据,当多个工作表中的字段完全相同但排列比较混乱时,便可利用该功能来进行合并计算,本文图文详解Excel2019中合并计算的使用方法。... -
Excel技能培训之八合并计算,多区域合并计算,分类汇总,展开隐藏列
2020-11-26 22:05:151. 合并计算 如下表格-根据日期把日期相同的金额求和值。 选择单元格(求和到哪个位置)-> 合并计算->求和->选择求和区域->添加->选中首行,最左列->确定 确定后效果如下: 填好日期头,... -
将多个Excel表中的sheet合并到同一个Excel中,并以原表名为sheet名
2019-11-01 14:04:461、将要合并的Excel放在同一个...'功能:把多个excel工作簿的第一个sh eet工作表合并到一个excel工作簿的多个sheet工作表,新工作表的名称等于原工作簿的名称 Sub Books2Sheets() '定义对话框变量 Dim fd As Fi... -
将多个Excel工作薄合并成一个工作薄如操作过程
2021-01-12 11:44:58将多个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:331、我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。 2、用microsoft excel打开新建的excel表,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。 3...