把很多的Excel表匯總成一個怎么做效率高

我在行,有三種方法可以對付這種多個Excel表格合并,從簡單到困難,下面我就來依次介紹下,至于效率問題,大家自己可以考慮下接受形式,畢竟自己理解并靈活應用才是硬道理 。
為了省略些時間,使用表格都合并到了同一個數據表的不同sheet下,這樣講解時也比較方便簡潔 。
合并計算
合并計算功能是Excel中合并數據最方便的功能,不需要對Excel有太多的了解 。

1,選中【數據】—【合并計算】;
2,在彈出框中分別選擇需要的【引用數據源】(gif中為了省略時間,已經提前選擇好了數據源),勾選下面的【最左列】&【首頁】&【建立數據源之間的聯系】,點擊確定 。
完成后就能到所有數據已經完成歸總,但這個功能也有局限性:
①他要保持數據源中的數據是相同類型,不然無法合并;
②如果表格不是多sheet,是多個表格的話,勾選數據源需要分別打開各個表格,瀏覽功能無法精確選擇 。

把很多的Excel表匯總成一個怎么做效率高


數據透視表
數據透視表也是常用的合并數據方式,多個sheet合并的話,需要使用【Alt+D+P】組合鍵 。
1,使用【Alt+D+P】組合鍵呼出數據透視表指引;
2,依次選擇【多重合并數據源】—【數據透視表】—下一步—創建單頁字段;
3,分別添加各個數據源—下一步—選定需要創建的表格位置——完成;
這樣就能看到已經合并完成的數據表,如果是多個數據表合并的話,根據數據源位置,選擇外部數據源或在添加數據源位置時使用瀏覽位置,具體看情況執行 。
這個方法和合并計算相比,對于數據源的選擇更加靈活高效 。
把很多的Excel表匯總成一個怎么做效率高


VBA代碼
這個功能我也是剛接觸,代碼理解還不是很清楚,只能大概講一下流程和原理 。
1,右鍵選擇【查看代碼】在彈出框中輸入以下代碼:
Sub 總計()
Dim x As Integer, K As Integer
Sheets("總計").Cells.Clear
For x = 1 To 4
K = Application.CountA(Sheets("總計").[a:a]) + 1
Sheets(x).UsedRange.Copy Sheets("總計").Cells(K, 1)
Next x
End Sub
上述代碼中需要注意兩點:
①x的循環個數,我的表格是4個,就直接填寫了4,具體數量根據自己的要求修改;
②表格名字,表格名字需要和代碼中的命名一致 。
2,執行代碼,選擇【開發工具】—【插入】—【按鈕】,在彈出框中選擇執行宏代碼并確定 。
這時點擊代碼后就能得到合并好的數據,如果還需要繼續計算合并的數據,需要重復【數據透視表】中的合并計算步驟 。
把很多的Excel表匯總成一個怎么做效率高


這種VBA代碼只適用于多個sheet合并,如果是外部多個表格合并,需要復制下面的代碼:
Sub 合并當前目錄下所有工作簿的全部工作表()
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)

推薦閱讀