永发信息网

多个excel表数据汇总成一个表

答案:3  悬赏:10  手机版
解决时间 2021-04-20 23:26
  • 提问者网友:wodetian
  • 2021-04-20 16:46

有n单位上报的数据表,表的字段格式都一样,只是数据不一样,现在要把所有的数据都汇总到一个表中,咋整?我记得以前用过vba,很容易,不过忘了

千万别说复制粘贴!!!!

最佳答案
  • 五星知识达人网友:长青诗
  • 2021-04-20 18:24
将这些文件copy到一个文件夹(只有这些Excel,且若打开某一文件,数据就能看见——即不用点其他sheet),建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,左边窗口右键点,插入模块,在右边窗口粘贴如下代码:

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
Match = Dir$
End If
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

按F5执行此宏,文件copy完成。

然后你可以用sum(sheet12:sheet30!A1)汇总了。
如果你的数据只有几列的话,可以直接用宏copy到一张工作表中。
全部回答
  • 1楼网友:西风乍起
  • 2021-04-20 20:56

EXCEL的“合并汇总”功能应该能达到你的目地,

多表取值,我制作过一个工具,原理是大范围的使用indirect函数进行定位,

比如这么个例子:=[Book2]Sheet1!$G$8,引用的就是book2.xls里sheet1表里的G8位置。

实际应用的时候,拿一列编写所有单位上报的文件名称,不能重复。

举例:

A1=“单位1报表"

A2="单位2报表"等等,内容与上报文件名一致,不要.xls

B1=indirect(CONCATENATE("[",A1,"]",表的名称,"!",位置),1)

表的名称也可以放在某个列或者某个单元格。

这样就可以批量取得多个表,相同位置的内容。

以上方法适用于日常大批量的操作。

  • 2楼网友:神鬼未生
  • 2021-04-20 19:29
先把表一,表二弄在一起,作一个表三。 编号应该是唯一值吧?姓名可能有重复的。 汇总表 单位=vlookup(汇总表编号,表三编号范围,3,false) 电话=vlookup(汇总表编号,表三编号范围,4,false) 往下拉。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯