Excel如何將不同工作表的數據匯總到一起?
如下圖所示,3張工作表中的人數是不同的,人員也不是不全相同的人,現在要把所有人都列在一個表裡並且月份也合到一起顯示。
用VBA實現,親測可用。有解決問題的,記得點贊哦~
【321收藏,只有42贊什麼情況???】
方法:
1、新建一個Excel工作薄,工作簿名稱任你定義。
2、打開此工作薄,將其中一個Sheet重命名為"匯總"。
3、在其下任一個工作表標籤上點擊右鍵,選擇「查看代碼」。
4、在打開的VBA編輯窗口中粘貼以下代碼:
Sub 合併工作簿內的多個Sheet到同一個Sheet並執行匯總()
Dim i, j As Integer i是數據源表的最後一行,j是目標表(數據表)的最後一行
Dim sht As Worksheet
Application.ScreenUpdating = False 關閉屏幕刷新
先要刪除所有數據
Sheets("匯總").Range("a2:z65536").ClearContents
匯總表增加表頭
Sheets("匯總").Range("a1") = "摘要"
Sheets("匯總").Range("b1") = "人名"
Sheets("匯總").Range("c1") = "業績"
複製數據
For Each sht In Sheets
If sht.Name &<&> "匯總" Then
i = sht.Range("a65536").End(xlUp).Row
j = Sheets("匯總").Range("b65536").End(xlUp).Row
sht.Range("a2:z" i).Copy Sheets("匯總").Range("b" j + 1)
複製摘要
sht.Range("b1").Copy Sheets("匯總").Range("a" (j + 1) ": a" (j + i - 1))
End If
Next
對匯總表進行透視
Sheets("匯總").Range("A1:C" j + i - 1).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="匯總!R1C1:R" j + i - 1 "C3", Version:=6).CreatePivotTable TableDestination:="匯總!R1C6", TableName:="數據透視表6", DefaultVersion:=6
Sheets("匯總").Cells(1, 6).Select
With ActiveSheet.PivotTables("數據透視表6")
.ColumnGrand = True
.HasAutoFormat = True
.DisplayErrorString = False
.DisplayNullString = True
.EnableDrilldown = True
.ErrorString = ""
.MergeLabels = False
.NullString = ""
.PageFieldOrder = 2
.PageFieldWrapCount = 0
.PreserveFormatting = True
.RowGrand = True
.SaveData = True
.PrintTitles = False
.RepeatItemsOnEachPrintedPage = True
.TotalsAnnotation = False
.CompactRowIndent = 1
.InGridDropZones = False
.DisplayFieldCaptions = True
.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = False
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = False
.CalculatedMembersInFilters = False
.RowAxisLayout xlCompactRow
End With
With ActiveSheet.PivotTables("數據透視表6").PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsDefault
End With
ActiveSheet.PivotTables("數據透視表6").RepeatAllLabels xlRepeatLabels
With ActiveSheet.PivotTables("數據透視表6").PivotFields("摘要")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("數據透視表6").PivotFields("人名")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("數據透視表6").AddDataField ActiveSheet.PivotTables("數據透視表6" _
).PivotFields("業績"), "求和項:業績", xlSum
With ActiveSheet.PivotTables("數據透視表6")
.ColumnGrand = False
.RowGrand = False
End With
透視表粘貼為數值型
ActiveSheet.PivotTables("數據透視表6").PivotSelect "", xlDataAndLabel, True
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
MsgBox "執行完畢!"
Application.ScreenUpdating = True 打開屏幕刷新
End Sub
5、關閉VBA編輯窗口。
6、在excel中,工具---宏---宏,選「合併工作簿的各個sheet到同一個sheet」,然後「執行」。
7、在打開的對話窗口中,選擇你要合併的幾個工作薄文件。
8、等待。。。。ok!
親測可用,效果如下圖所示:
※求問哪個軟體適合建立這樣的表格?
※Excel為什麼沒有WPS處理流暢?
※Excel複製粘貼不了。總是提示單元格格式太多?
※請問有公司只用excel做數據分析嘛?
※Excel表格怎麼同步修改?
TAG:MicrosoftExcel | Excel使用 | 電子表格 |