如何快速将几个分表合并到一张表

如何快速将几个分表合并到一张表,第1张

execl表格的合并从简单方面说,只需要复制粘贴每一张表格到一个统一的工作表即可,但是从工作方面考虑,表格中的重复项是否需要合并,重复项的数据是否需要累计汇总,每个表格不同的项目怎么筛选并追加到汇总表中等问题,都是合并多个工作表时,我们需要考虑的问题。另外如果工作表只有几张还可以,如果工作表有几百张都需要汇总怎么办?手动复制明显效率低下,而且错误率高。怎么办?

如何快速、高效的合并多个工作表呢?那么采用vba编程方式来解决就是我们不二之选。

以下的例子就是一个多工作表合并的实例。

实例中采用VBA宏方式,先建立汇总按钮,然后绑定编辑好的宏即可,多少个表都可以,只要execl能容纳下,每个表格必须格式一样,汇总表在任何位置都可以。汇总的功能如下,汇总表把每一页表格相同项合并,数量累加,同时将每一个表的新增项添加入汇总表,同时累加。希望这个例子能对你的工作有帮助。

实例如下:

某连锁社区超市,不同分店的库存表需要汇总,工作表数据既有重复的又有不同的。工作表有4张(模拟四个分店),汇总到一个表中。

1、汇总后的汇总表,按汇总按钮进行对工作表汇总,按清除按钮清楚汇总结果。

其中各工作表格式:

表三、表四格式相同略过。

VBA代码:

Sub 合并()Dim i As IntegerDim j As IntegerDim k As IntegerDim l As IntegerDim n As IntegerDim a() As VariantDim b() As VariantDim c(1 To 1000, 1 To 3) As Variant ScreenUpdating = False'-------------------------------------------------------For i = 1 To Worksheets.Count                      '循环工作簿中所有工作表         If ActiveSheet.Name <> Worksheets(i).Name Then '判断是否为汇总表,是的                                                   '话进行下一个表单。        a() = Worksheets(i).UsedRange.Value '获取工作表数据    Else        GoTo nextsheet    End If             If i = 1 Then                              '判断是否为第一张表,是的话,        b() = Worksheets(i).UsedRange.Value    '直接复制并进行下一个表。        GoTo nextsheet    End If'-------------------------------------------------------    For j = LBound(a) + 1 To UBound(a)         '汇总同类数量                     For k = LBound(b) + 1 To UBound(b)                         If a(j, 1) = b(k, 1) And a(j, 2) = b(k, 2) Then                b(k, 3) = b(k, 3) + a(j, 3)                Exit For            End If                         Next'-------------------------------------------------------        If k = UBound(b) + 1 Then                    '汇总新增加种类            c(l + 1, 1) = a(j, 1)            c(l + 1, 2) = a(j, 2)            c(l + 1, 3) = a(j, 3)            l = l + 1        End If            Next'-------------------------------------------------------    Range("z1").Resize(UBound(b), UBound(b, 2)) = b() '增加汇总表空间    b() = Application.WorksheetFunction.Transpose(b)    ReDim Preserve b(1 To 3, 1 To UBound(b, 2) + l)    b() = Application.WorksheetFunction.Transpose(b)    b() = Range("z1").Resize(UBound(b), UBound(b, 2))    Range("z1").Resize(UBound(b), UBound(b, 2)).Clear'-------------------------------------------------------    For n = 1 To l                                    '合并新增加种类到汇总表                         b(UBound(b) - l + n, 1) = c(n, 1)        b(UBound(b) - l + n, 2) = c(n, 2)        b(UBound(b) - l + n, 3) = c(n, 3)                 Next'-------------------------------------------------------    Erase c()                                         '清空临时数据    l = 0     nextsheet: Next'-------------------------------------------------------Range("A1").Resize(UBound(b), UBound(b, 2)) = b()     '生成汇总表 ScreenUpdating = ture End Sub

两家店合并是一种法律行为,必须依法定程序进行。根据查询相关公开信息,合并后存续公司应办理变更登记,解散公司应办理注销登记,法律依据《公司法》第一百七十二条,公司合并可以采取吸收合并或者新设合并,一个公司吸收其他公司为吸收合并,被吸收的公司解散,两个以上公司合并设立一个新的公司为新设合并,合并各方解散。

合并计算功能是Excel 2003中的数据库管理功能之一,是一种统计方法,主要用于处理不同工作表间大量数据的统计。

  通过合并计算可以汇总一个或多个源区域中的数据。Excel 2003提供了两种合并计算数据的方法。一是通过位置,即源区域有相同位置的数据汇总。二是通过分类,当源区域没有相同的布局时,则采用分类方式进行合并计算。

  合并计算数据,首先必须为汇总信息定义一个目标区,用来显示汇总的信息。此目标区可位于与源数据相同的工作表上,或在另一个工作表上或另一个工作簿内。其次,需要选择要合并计算的数据源。此数据源可以来自单个工作表、多个工作表或多个工作簿中。

  在Excel 2003中,可以最多指定255个源区域来进行合并计算。在合并计算时,不需要打开包含源区域的工作簿。

  通过位置来合并计算数据是指在所有源区域中的数据被相同地排列,也就是说,想从每一个源区域中合并计算的数值必须在被选定源区域的相对位置上。这种方式非常适用于处理日常相同表格的合并工作。例如,总公司将各分店的合并形成一个整个公司的报表。再如,税务部门可以将不同地区的税务报表合并形成一个市的总税务报表等。

  下面以一个实例来说明这一 *** 作过程,建立如图4-87所示的工作簿文件。

  在本例中将对工作表1分店、2分店进行合并 *** 作,其结果保存在工作表sheet3中,执行步骤如下:

①为合并计算的数据选定目标区,如图4-88所示。

②单击“数据”-“合并计算”命令,打开图4-89所示的对话框。

③在“函数”下拉列表框中,选定希望Exce12003用来合并计算数据的汇总函数,求和(SUM)函数是默认的函数。

  ④在“引用位置”框中输人希望进行合并计算的源区域的范围,如图4-90所示。

⑤单击“添加”按钮,对要进行合并计算的所有源区域重复上述步骤。“合并计算”对话框如图4-91所示。

⑥最后单击“确定”按钮,就可以看到合并计算的结果,如图4-92所示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8083982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存