一 使用說明
問題描述: 往往在進行數據統計分析前,會遇到數據分在不同的表里的情況,這時候就需要將多個表的數據先放到一個表里面匯總,然后再進行分析。比如班級需要匯總每個人的信息,幾十人每個人都發了個人的信息表給一個人進行統計,統計人員可以進行一個一個表打開粘貼到匯總表里,但是這樣不僅麻煩,而且還可能出錯,這種做法最簡單粗暴但卻很浪費時間的。當然,如果是大批量的數據使用python或者其他語言匯總到一個表里也是可行的,如果是小批量的幾百個數據,敲代碼有點大材小用,這時候excel本身就可以解決。
使用條件:對多個同類型的excel數據表通過excel功能合並到一個excel表內。同類型是指每個一個excel表的表頭都是一樣的,里面的信息都是同類型的,比如表1、表2的內容分別是如下兩張表的內容,可以看出兩者的錄入信息都是一樣的。本excel是2016版的,其他版本應該都有該功能,但是具體的菜單欄內容可能會有小差異。
表1
表2
二 使用方法
1.數據處理:將要合並的數據統一放到一個文件夾內
ps:本文的示例數據是從招生信息網站找的,內容和上文表1表2的格式相同,分別在四個excel表內,統一命名為表1,表2,表3,表4,並放在一個文件夾內,如下圖所示。
示例數據
2.在文件夾內新建一個匯總表,也可以命名其他的名字,用來匯總各個表格的信息
ps:本文的示例匯總表命名為匯總表,如下圖所示
新建匯總表
3.打開匯總表表格,然后右擊下方的sheet1按鈕,會出現一個菜單,點擊“查看代碼”一欄,這時會出現VBA窗口
點擊查看代碼一欄
VBA窗口
4.在彈出的代碼框中粘貼如下代碼,並點擊按鈕運行,運行完后會彈出運行結果對話框,點擊確定即可
Sub all_contents()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合並了" & Num & "個工作薄"
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
運行代碼
運行結果對話框
5.返回原來的工作簿,可以看到數據匯總成果。但是卻出現很多重復的表頭,除了第一個表頭,我們需要將其他多余的表頭刪除,當然,如果不怕麻煩,也可以選擇一行一行的刪除。如果想一次性處理,這時需要進行如下幾步:
(1)將表數據進行全選,點擊“查找和選擇”按鈕,在查找文本框內輸入要查找的內容,內容可以是表頭中的任意一個列名進行輸入,然后點擊”查找全部“按鈕(本文使用了“院校名稱”進行查找,也可以使用“年份”或者“考生類別”或其他列名)
查找對應的列
(2)查找的結果都會在查找框的下面全部列出來,對結果使用Ctrl+A全選,這時所有的內容都變藍了。然后按住Ctrl鍵不放,點擊第一個查詢結果,這時第一行變白了,也就是沒有選中。看一下表內的數據內容,可以看到,除了第一行的院校名稱沒有變色,其他行的院校名稱都變成了灰色,或者說處於一種被同時選中的狀態。
選中的行
(3)選擇任意一個灰色被選中的單元格,然后右擊該單元格,會有菜單彈出,點擊刪除一欄,在彈出的窗口中按照“整行”的方式刪除,然后點擊確定即可。這時所有選中的內容對應的行全部刪除,這時表頭問題就算解決了,數據匯總完成。
選中刪除
按照行刪除
刪除后的結果表
三 另外一種合並方法
這種方法得出來的數據有點像數據透視表的結果,而且需要一個個導入,也推薦使用,,具體好壞,還請自行鑒別使用
1.源數據:不一定放在一個文件夾,一般考慮方便,放在一個文件夾里了,這里還使用原來的數據,可以新建一個匯總表。
2.打開匯總表,首先點擊選中A1單元格,然后在“數據“一欄中,選擇“現有連接”功能,會彈出的窗口,在窗口左下角點擊“瀏覽更多”
現有連接窗口
3.這時需要選擇數據源,對話框主要會按照如下步驟彈出:
(1)數據源對話框:點擊瀏覽更多后會彈出選擇數據源對話框,在對話框左邊找到源數據文件所在的路徑,然后從路徑里選擇表1,點擊右下角的打開按鈕。
數據源對話框
(2)選擇表格對話框:點擊打開后會出現選擇表格對話框,在該對話框內的sheet1就是表1的表,如果表1工作簿內有兩個sheet表,選擇對應的sheet表就行,這里表1工作簿就一個sheet表,所以直接點擊確定即可。
選擇表格對話框
(3)導入數據對話框:點擊確定后出現導入數據對話框,顯示方式選“表”就行,不用動,“現有工作表”一欄下面需要填寫單元格,這里“$ A $ 1 是選擇A1單元格開始粘貼,如果不從A1開始粘貼,可以自行選擇其他起始單元格。選好單元格后,點擊確定即可。這時表1的數據就錄入成功了,如下圖所示。
導入數據對話框
錄入的表1數據
4.如果需要導入其他表,重復1,2,3步即可,錄入的四個表的結果如下圖所示
錄入四個表的結果
5.這里發現仍然會出現很多重復的表頭,按照第一種刪除方法是無效的,處理方法為:首先將內容全選;然后將內容復制;新建一個sheet表,然后以文本的方式粘貼到另外一張sheet表里;最后按照上文第一種方法里刪除重復表頭的方式將重復表頭刪除,即為所獲得的匯總表。
————————————————
版權聲明:本文為CSDN博主「安吉尼爾」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_31385713/article/details/94326805