首页 > 百科知识 正文

Excel如何进行多表数据合并计算 excel两个表数据对比合并

时间:2023-11-20 19:14:45 阅读:1019 作者:叫我余碍人

NO.1 Consolidate方法介绍

Excel工作表进行计算,如何多表进行?

Range对象给出了一个方法,很方便地实现了多表之间进行单元格计算。

方法:Range.Consolidate(sources、Function、 TopRow、 LeftColumn、 CreateLinks)

功能:将多个工作表中多个区域的数据合并计算至单个工作表上的单个区域

Excel如何进行多表数据合并计算 excel两个表数据对比合并-第1张

Consolidate有一些参数,具体内容查看下图。

Excel如何进行多表数据合并计算 excel两个表数据对比合并-第2张

这里主要说一下Function参数,其功能是指定要执行的合并类型,就是说要以什么方式来合并。

XlConsolidationFunction是参数常量,可以求和、平均、乘积、最大数、最小数等等不同类型进行数据合并计算。

Excel如何进行多表数据合并计算 excel两个表数据对比合并-第3张

XlConsolidationFunction常量表

NO.2 举例说明

Excel如何进行多表数据合并计算 excel两个表数据对比合并-第4张

本例分别以求和、平均、最大值、最小值、乘积、计数为合并类型。

操作方式以选择表格内任意单元格,对表一和表二两个工作表相同单元格内容进行合并计算,计算结果显示到相应位置。

相对来说,代码整合为一个函数功能里面,直接调用函数即可实现所有计算。

做到简单高效。

NO.3 代码解释

Excel如何进行多表数据合并计算 excel两个表数据对比合并-第5张

合并计算函数

Private Sub Functions(v As Integer, vR As Range) On Error Resume Next '功能:表一和表二选择单元格进行计算 Dim w'定义工作表数组 w = Array("计算表一", "计算表二") Dim wStr As String wStr = "!" Dim R As Range Set R = Selection Dim i As Integer, n As Integer n = R.Count * (UBound(w) 1) '数组大小为表数量乘以选择单元格数 If n <= 0 Then Exit Sub Dim RArr '定义数组 ReDim RArr(1 To n) Do '给数组 赋值 For x = 0 To UBound(w) For s = 1 To R.Count i = i 1 RArr(i) = w(x) & wStr & R.Item(s). _ Address(ReferenceStyle:=xlR1C1) '取计算范围 Next s Next x Loop While i < n vR.Select Selection.Consolidate sources:=RArr, _ Function:=FunctionArr(v)'执行合并计算 End Sub

分类汇总方式数组定义放到通用声明里

Dim FunctionArr '定义计算方式数组

分类汇总方式数组函数

Private Sub setFunction() '设置计算功能代码 'XlConsolidationFunction 常量数组定义 FunctionArr = Array(xlSum, xlAverage, _ xlCount, xlMax, xlMin, xlProduct) End Sub

函数调用

Private Sub CommandButton1_Click()'合并求和 Dim vR As Range Set vR = Me.Range("B2") setFunction Call Functions(0, vR) End Sub

重点说明

sources参数

参数说明:

以文本引用字符串数组的形式给出合并计算的源,该数组采用 R1C1-样式表示法。 这些引用必须包含将要合并计算的工作表的完整路径。

此参数是对合并数据单元格进行定位,是以数组形式传递地址,以R1C1样式表示,并且要单元格完整路径,所以在对Sources参数进行设置的时候要特别注意。

NO.4

以上代码整合到一起就完成了两个表数据合并计算功能了。

如想要对更多工作进行合并计算,相应地对工作表数组(w)进行增加即可实现。

总体思路就是这样,对于两张表进行计算并不能发挥出其方法的优势,要进行几百张表进行合并计算还是十分有效的。

所以,学习深入以后,对于多表进行操作就很有帮助了。

欢迎关注、收藏

,

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。