有很多个工作表按日期记录的数据,按月份统计汇总到一个表,用函数该怎么做(如图?

如题所述

不建议用公式,这种多表合并汇总用公式不仅复杂,而且因为数据量大加上跨表,会相当的卡。
比较好的方法是:Power Qurey+数据透视表。当然如果工作表数张数在10以下,也可考虑直接用多重合并计算的数据透视表方法,一个个工作表添加进去。但效率肯定没Power Qurey+数据透视表的方法高。
在汇总表中,数据菜单——获取数据——来自文件——从工作簿。浏览到当前工作簿后打开,选择转换并编辑数据(Excel版本不同,叫法可能有所不同,但基本是这个意思),进入到Power Qurey工作界面,筛选工作表,去掉“汇总”工作表本身后,删除不需要的列(不会从工作表中删除),这样就相当于把所有工作表汇总到一个工作表中了(只是在PQ中)。可以直接在PQ按月进行汇总,但直接把结果上载回工作表并进行透视来得简单。关闭并上载到,选择现有工作表,并选择上载方式为数据透视表,在汇总中的A1中插入数据透视表,把日期到行字段,把各种金额拖到值汇总区域,进行适当的修饰,就可得到需要的结果。透视表会比公式有更好的视觉感观效果,用鼠标拖动,可得到多种汇总结果。
没有做模拟文件(太费时间),但上面的步骤应该是可行的,具体操作时,可能会有些细微的差别。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-30
Sub 提取数据()
On Error Resume Next
Dim arr(1 To 12, 1 To 3)
For i = 1 To Sheets.Count
If Sheets(i).Name <> "汇总" Then
For j = 2 To Sheets(i).[a65536].End(xlUp).Row
月份 = Month(Sheets(i).Cells(j, 1))
arr(月份, 1) = arr(月份, 1) + Sheets(i).Cells(j, 2)
arr(月份, 2) = arr(月份, 2) + Sheets(i).Cells(j, 3)
arr(月份, 3) = arr(月份, 3) + Sheets(i).Cells(j, 4)
Next
End If
Next
[b2].Resize(12, 3) = arr
End Sub
相似回答