如何在EXCEL文件中把一个工作簿中的所有工作表数据汇总,表格内容全部一样。

2024-11-23 10:24:31
推荐回答(3个)
回答1:

创建三维引用,就行了! 简单得很!
建三维引用
单击要在其中输入函数的单元格。
键入 =(等号),再输入函数名称,然后键入左括号。
单击要引用的第一张工作表的标签。
按住 Shift 并单击要引用的最后一张工作表的标签。
选择要引用的单元格或单元格区域。
完成公式,然后按 Enter。

您可以在三维引用中使用以下函数:
函数 说明
SUM 将数值相加。
AVERAGE 计算数值的平均值(算术平均值)。
AVERAGEA 计算数值(包括文本和逻辑值)的平均值(算术平均值)。
COUNT 统计包含数值的单元格数。
COUNTA 统计非空单元格数。
MAX 查找一组数值中的最大值。
MAXA 查找一组数值中的最大值(包括文本和逻辑值)。
MIN 查找一组数值中的最小值。
MINA 查找一组数值中的最小值(包括文本和逻辑值)。
PRODUCT 将数值相乘。
STDEV 基于样本计算标准偏差。
STDEVA 基于样本(包括文本和逻辑值)计算标准偏差。
STDEVP 计算总体的标准偏差。
STDEVPA 计算总体(包括文本和逻辑值)的标准偏差。
VAR 基于样本估算方差。
VARA 基于样本(包括文本和逻辑值)估算方差。
VARP 计算总体的方差。
VARPA 计算总体(包括文本和逻辑值)的方差。

回答2:

用VBA代码,下面的代码可以选择是否有表头
Alt+F11,打开VBA编辑器,将下面的代码复制到编辑器里面。保存
Alt+F8 选择执行

如果需要现成的文件,请留下联系邮箱,我发给你。

Sub Combine_data()
'
' Combine_data Macro
'
Dim source, target As String
Dim s As Worksheet
Dim tr As Double
Dim SheetHeader As String

OpenFN = Workbooks.Application.GetOpenFilename
If OpenFN = False Then Exit Sub
Workbooks.Open OpenFN

SheetHeader = MsgBox("是否有表头?", vbYesNo)

Application.ScreenUpdating = False
source = ActiveWorkbook.Name
Workbooks.Add
target = ActiveWorkbook.Name

If SheetHeader = vbYes Then
RowStart = 2
tr = 2
Windows(source).Activate
Rows("1:1").Select
Selection.Copy
Windows(target).Activate
Range("A" & 1).Select
ActiveSheet.Paste
ElseIf SheetHeader = vbNo Then
RowStart = 1
tr = 1
End If

Windows(source).Activate
For Each s In ActiveWorkbook.Sheets
Sheets(s.Name).Select
lr = LastCell(ActiveSheet).Row
Rows(RowStart & ":" & lr).Select
Selection.Copy
Windows(target).Activate
Range("A" & tr).Select
ActiveSheet.Paste
If SheetHeader = vbYes Then
tr = tr + lr - 1
ElseIf SheetHeader = vbNo Then
tr = tr + lr
End If

Windows(source).Activate
Next

Application.DisplayAlerts = False

Workbooks(source).Close savechanges:=False
' Application.CutCopyMode = False
Application.ScreenUpdating = True

MsgBox "合并完成!"

'
End Sub

Function LastCell(ws As Worksheet) As Range
Dim LastRow&, LastCol%

On Error Resume Next
With ws
' Find the last real row
LastRow& = .Cells.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row

' Find the last real column
LastCol% = .Cells.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByColumns).Column
End With
Set LastCell = ws.Cells(LastRow&, LastCol%)
End Function

回答3:

1.函数处理:
在汇总表中输入对应的公式,如:每个表的C1求和,在汇总表中输入公式如下
=sum(sheet1:sheet10!C1)这样就把sheet1到10表中的C1相加了,其他单元格同理
2.VBA方法:
可用在工作表中循环相加处理,具体情况根据你的表格设计而定。