Gộp Nhiều File Excel Thành 1 File Nhiều Sheet: Hướng Dẫn Chi Tiết

1. Giới thiệu vấn đề

Trong môi trường làm việc hiện đại, Excel vẫn là công cụ phổ biến nhất để lưu trữ, phân tích dữ liệu và báo cáo. Đôi khi, chúng ta phải xử lý hàng trăm bảng tính, mỗi bảng tính chứa dữ liệu tương ứng với một ngày, một bộ phận, một dự án hoặc một đối tượng nào đó. Việc thao tác một cách thủ công trên từng file sẽ tốn thời gian và dễ gây sai sót. Do đó, việc gộp nhiều file Excel thành một file duy nhất với nhiều sheet là một nhu cầu thiết thực và được nhiều người thực hành.

Bài viết này sẽ cung cấp một hướng dẫn chi tiết, từ cách sử dụng các công cụ miễn phí như Power Queryికి, macro VBA, đến cách sử dụng ngôn ngữ lập trình Python để tự động hoá quy trình này. Bạn cũng sẽ được nắm bắt các mẹo, lưu ý khi làm việc với dữ liệu lớn, xử lý lỗi và bảo vệ dữ liệu khi chuyển đổi.

2. Cách gộp file Excel bằng Power Query (Excel 2026 trở lên)

2.1. Tại sao chọn Power Query?

  • Không cần lập trình: Power Query cung cấp giao diện kéo‑thả dễ dùng.
  • Hỗ trợ nhiều nguồn dữ liệu: Excel, CSV, Access, SQL, Web…
  • Tự động cập nhật: Khi dữ liệu nguồn(le) thay đổi, bạn chỉ cần refresh để cập nhật.
  • Đóng gói trong Excel: Không cần cài thêm phần mềm.

2.2. Bước chuẩn bị

  1. Đặt tên file: Đ rt các file nguồn có tên chuẩn, ví dụ DoanhThu_2023_01.xlsx, DoanhThu_2023_02.xlsx, … để dễ lọc.
  2. Đảm bảo cấu trúc dữ liệu giống nhau: Mỗi file phải có cùng số cột, cùng tên cột (hoặc ít nhất có thể chuẩn bị lại).
  3. Tạo một thư mục: Đặt tất cả các file nguồn vào một thư mục duy nhất.

2.3. Bắt đầu với Power Query

2.3.1. Mở Power Query

  • Mở một workbook mới (hoặc workbook hiện có).
  • Vào tab Data → Get Data → From File → From Folder.

2.3.2. Chọn thư mục

  • Nhập đường dẫn thư mục chứa các file nguồn.
  • Nhấn OK.

2.3.3. Xử lý dữ liệu trong Power Query

Bạn sẽ thấy một bảng gồm các cột: Content, Name, Extension, Date accessed, v.v.

  • Lọc file: Nếu có file không cần gộp, bạn có thể lọc theo cột Extension hoặc Name.
  • Chuyển đổi: Nhấp vào biểu tượng Content → Transform Data.
    Ta sẽ được mở Power Query Editor.

2.3.4. Gộp các bảng

  • Trong Power Query Editor, chọn Home → Combine → Combine & Load → Combine & Load To.
  • Chọn Data → Existing worksheet hoặc New worksheet tùy ý.
  • Trong cửa sổ Combine Files, chọn một file mẫu (đôi khi bạn cần chọn file có cấu trúc chính xác nhất).
  • Power Query sẽ tự động tạo một truy vấn mới (Combine), trong đó có 2 bước: Source và Combined.

2.3.5. Kiểm tra và điều chỉnh

  • Bạn có thể mở truy vấn Combined để xem dữ liệu đã được gộp.
  • Nếu cần chỉnh sửa: xóa cột, đổi tên cột, thay đổi kiểu dữ liệu, v.v.
  • Khi hoàn thành, nhấn Close & Load.

2.3.6. Đặt tên sheet

Mỗi file nguồn sẽ được tạo thành một sheet riêng trong workbook đầu ra. Power Query sẽ tự động đặt tên sheet theo tên file, nhưng bạn có thể đổi sau.

2.4. Cách làm mới dữ liệu

  • Khi có file mới trong thư mục, chỉ cần vào Data → Refresh All. Power Query sẽ cập nhật dữ liệu và thêm sheet mới.

2.5. Lưu ý khi làm việc với Power Query

  • Dung lượng file: Nếu tổng kích thước dữ liệu quá lớn (tens of MB), Power Query có thể chậm. Bạn có thể chia nhỏ dữ liệu vào nhiều workbook.
  • Bản sao lưu: Luôn giữ bản sao nguồn, tránh ghi đè dữ liệu.
  • Sử dụng Query Parameters: Nếu bạn muốn tùy biến tên file hoặc thư mục, hãy tạo Parameter để dễ dàng thay đổi.

3. Gộp file Excel bằng VBA Macro

3.1. Khi nào nên dùng VBA?

  • Excel cũ: Nếu bạn đang dùng Excel 2026 hoặc trước, Power Query có thể không hỗ trợ.
  • Tùy biến cao: Khi muốn thực hiện các thao tác phức tạp, ví dụ: ghép dữ liệu từ nhiều sheet trong cùng một file, chạy macro tự động sau khi gộp, v.v.
  • Tự động hoá quy trình: Khi bạn cần chạy nhiều lần, macro sẽ tiết kiệm thời gian.

3.2. Viết macro cơ bản

Dưới đây là mẫu macro gộp tất cả các file Excel trong thư mục nhất định vào một workbook mới, mỗi file được đặt thành một sheet.

Sub GopFileExcel_IntoOneWorkbook() Dim SourceFolder As String Dim FileName As String Dim wbDest As Workbook Dim wbSource As Workbook Dim wsSource As Worksheet Dim wsDest As Worksheet Dim i As Long ' 1. Đặt thư mục nguồn SourceFolder = "C:\Users\Username\Documents\ExcelFiles\" ' 2. Tạo workbook đích Set wbDest = Workbooks.Add ' 3. Duyệt qua từng file FileName = Dir(SourceFolder & ".xlsx") sotto: If FileName <> "" Then Set wbSource = Workbooks.Open(SourceFolder & FileName, ReadOnly:=True) ' 4. Duyệt qua từng sheet For шир In wbSource.Worksheets ' Tạo sheet trong workbook đích Set wsDest = wbDest.Sheets.Add(After:=wbDest.Sheets(wbDest.Sheets.Count)) wsDest.Name = wbSource.Name & "_" & wsSource.Name ' Copy data wsSource.Cells.Copy Destination:=wsDest.Cells(1, 1) Next wsSource wbSource.Close SaveChanges:=False FileName = Dir() GoTo sotto End If ' 5. Lưu workbook đích wbDest.SaveAs SourceFolder & "GopTatCa.xlsx" wbDest.Close MsgBox "Hoàn thành g-btn! Đã lưu file: պաշտպանության.xlsx", vbInformation
End Sub

3.3. Giải thích macro

  • SourceFolder: Đường dẫn thư mục chứa file nguồn.
  • FileName: Duyệt qua từng file .xlsx.
  • wbDest: Workbook đích.
  • wbSource: Workbook nguồn mở từng file.
  • wsSource: Sheet trong nguồn.
  • wsDest: Sheet trong đích.
  • Copy: Chép toàn bộ dữ liệu từ sheet nguồn sang sheet đích.

3.4. Mở rộng macro

  1. Bỏ sheet tạm thời: Nếu một file có nhiều sheet, bạn chỉ muốn gộp một sheet cụ thể.
  2. Định dạng lại dữ liệu: Thêm mã để chuyển đổi kiểu dữ liệu, áp dụng định dạng, v.v.
  3. Xử lý lỗi: Thêm On Error Resume Next hoặc On Error GoTo để tránh dừng macro khi gặp lỗi.
  4. Chèn dữ liệu hàng đầu: Nếu cần giữ tiêu đề và chỉ chép dữ liệu, bạn có thể áp dụng điều kiện If wsSource.Rows.Count > 1 Then.

3.5. Lưu ý khi dùng VBA

  • Bảo mật: Macro có thể chứa mã độc hại. Luôn bật cài đặt macro an toàn.
  • Tốc độ: Khi dữ liệu lớn, macro có thể chậm. Bạn có thể tắt ScreenUpdating, Calculation, và EnableEvents trong quá trình thực thi.
  • Định dạng: Khi chép dữ liệu, định dạng có thể mất. Bạn có thể chép giá trị và công thức riêng biệt.

4. Gộp file Excel bằng Python (pandas + openpyxl)

4.1. Khi nào nên dùng Python?

  • Dữ liệu lớn: Python có thể xử lý hàng triệu dòng nhanh hơn Excel.
  • Tự động hoá phức tạp: Khi bạn cần thực hiện tính toán, thống kê, chuẩn hóa dữ liệu trước khi gộp.
  • Tích hợp hệ thống: Khi dữ liệu phải được lưu trữ trong cơ sở dữ liệu, API, v.v.

4.2. Cài đặt môi trường

Gộp Nhiều File Excel Thành 1 File Nhiều Sheet
Gộp Nhiều File Excel Thành 1 File Nhiều Sheet
pip install pandas openpyxl

4.3. Mã mẫu

import os
import pandas as pd # Thư mục nguồn
source_folder = r'C:\Users\Username\Documents\ExcelFiles'
# Tên file kết quả
output_file = os.path.join(source_folder, 'GopTatCa.xlsx') # Lấy danh sách file .xlsx trong thư mục
files = f for f in os.listdir(source_folder) if f.endswith('.xlsx') # Chuẩn bị writer
with pd.ExcelWriter(output_file, engine='openpyxl') as writer: for filephon in files: file_path = os.path.join(source_folder, filephon) # Đọc file nguồn xl = pd.ExcelFile(file_path) # Đọc tất cả sheet for sheet_name in xl.sheet_names: df = xl.parse(sheet_name) # Tạo От sheet_name_out = f'{os.path.splitext(filephon)0}_{sheet_name}' df.to_excel(writer, sheet_name=sheet_name_out, index=False)
print('Hoàn thành!')

4.4. Tùy chỉnh nâng cao

  • Lọc sheet: Đọc chỉ những sheet cần thiết bằng if sheet_name in 'Sheet1', 'Data'.
  • Chuẩn hóa dữ liệu: Sử dụng df.dropna(), df.fillna(), df.astype().
  • Thêm tiêu đề chung: Dùng pd.concat để ghép dữ liệu từ nhiều file vào một dataframe duy nhất, rồi ghi vào một sheet.
  • Xử lý dữ liệu lớn: Nếu dữ liệu quá lớn, sử dụng chunksize khi đọc CSV hoặc read_excel với usecols.

4.5. Lưu ý khi dùng Python

  • Định dạng: Pandas không lưu giữ định dạng Excel (màu sắc, font). Bạn có thể dùngђ openpyxl để thiết lập định dạng sau khi ghi dữ liệu.
  • Version Excel: openpyxl hỗ trợ .xlsx, không thể ghi .xls. Nếu cần .xls, hãy dùng xlwt hoặc chuyển đổi.
  • Độ phức tạp: Việc tách sheet, chuẩn hóa dữ liệu có thể tốn thời gian, nhưng phù hợp với quy trình dữ liệu lớn.

5. So sánh các phương pháp

Phương phápƯu điểmNhược điểmKhi dùng
Power QueryDễ dùng, tích hợp sẵn, tự cập nhậtHạn chế với Excel 2026 trở xuống, không linh hoạt caoKhi cần gộp nhanh, dữ liệu vừa phải
VBA MacroKhông cần cài thêm, mạnh mẽ_pauseCần code, dễ lỗi, không giao diện người dùngKhi cần tự động hoá, tính năng tùy biến cao
Python (pandas)Xử lý dữ liệu lớn, tính linh hoạt, có thể tích hợp hệ thốngYêu cầu môi trường, không giữ định dạngKhi dữ liệu lớn, cần tính toánынџь

6. Các mẹo thực hành khi gộp dữ liệu

6.1. Kiểm tra dữ liệu nguồn

  • Trùng lặp: Kiểm tra xem dữ liệu có bị trùng lặp không. Nếu có, hãy loại bỏ hoặc giữ một bản.
  • Định dạng: Đảm bảo các cột dữ liệu.email, số, ngày tháng முன்ன đều có cùng kiểu.
  • Tên cột: Nếu cần, chuẩn hóa tên cột trước khi gộp để tránh lỗi.

6.2. Đặt tên sheet hợp lý

  • Tránh tên sheet quá dài (Excel giới hạn 31 ký tự).
  • Tránh ký tự đặc biệt (/, , ?, :, \, , ).
  • Nếu có nhiều sheet, đặt prefix để dễ phân loại, ví dụ 2023_January, 2023_February.

6.3. Bảo vệ dữ liệu

  • Sao lưu: Luôn giữ bản sao lưu trước khi gộp.
  • Quyền truy cập: Nếu workbook đích là tài liệu quan trọng, đặt mật khẩu bảo vệ.
  • T 있다는: Sau khi gộp, hãy kiểm tra dữ liệu, chạy các công thức kiểm tra tính toàn vẹn.

6.4. Tối ưu hóa hiệu suất

  • Tắt tính năng tự động tính toán: Trong Excel, vào Formulas → Calculation Options → Manual.
  • Tắt hiển thị lỗi: File → Options → Advanced → tắt Display errors.
  • Chia nhỏ workbook: Nếu workbook quá lớn, chia thành nhiều workbook nhỏ và liên kết qua INDIRECT hoặc GETPIVOTDATA.

7. Tích hợp gộp Excel vào quy trình doanh nghiệp

7.1. Tự động hoá qua Task Scheduler

Bạn có thể viết macro hoặc script Python, sau đó lên lịch chạy tự động bằng Windows Task Scheduler. Khi có file mới trong thư mục, script sẽ chạy, gộp và lưu file kết quả.

7.2 Meal

  • Trigger: Khi file mới được lưu vào thư mục.
  • Script: Gộp dữ liệu.
  • Output: Gửi email, upload lên SharePoint, hoặcեցնել trong hệ thống ERP.

7.3. Định kỳ báo cáo

  • Thời gian: hàng ngày, hàng tuần, hàng tháng.
  • Công cụ: Power Query, Python.
  • Hệ thống báo cáo: Power BI, Tableau, hoặc gửi mail tự động.

8. Tổng kết

Gộp nhiều file Excel thành một file với nhiều sheet là một thao tác rất hữu ích trong quản lý dữ liệu. Dựa vào nhu cầu và môi trường làm việc, bạn có thể chọn một trong ba phương pháp chính:

  • Power Query: Dễ thực hiện, không cần lập trình, phù hợp với Excel 2026 trở lên.
  • VBA Macro: Linh hoạt, mạnh mẽ, phù hợp với các phiên bản Excel cũ hoặc khi cần tùy biến sâu.
  • Python (pandas): Xử lý dữ liệu lớn, linh hoạt, thích hợp khi dữ liệu phức tạp hoặc cần tích hợp vào quy trình tự động.

Bên cạnh việc chọn công cụ, bạn cần chú ý đến chuẩn bị dữ liệu, đặt tên sheet hợp lý, bảo vệ dữ liệu và tối ưu hiệu suất. Khi thực hiện đúng các bước, quá trình gộp sẽ nhanh chóng, chính xác và có thể tái sử dụng trong tương lai.

Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để thực hiện công việc gộp Excel một cách hiệu quả và chuyên nghiệp. Nếu bạn có thêm câu hỏi hoặc cần hỗ trợ thực hiện, hãy chia sẻ để được tư vấn chi tiết hơn.

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận