Có thể bạn quan tâm: Cách Giải Nén File Excel: Hướng Dẫn Chi Tiết Từ A Đến Z
Mở Đầu
Trong môi trường làm việc hiện đại, việc xử lý dữ liệu thường xuyên gặp phải tình huống phải hợp nhất (gộp) nhiều file Excel lại thành một file duy nhất. Điều này không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu rủi ro sai sót khi nhập liệu thủ công. Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những cách đơn giản nhất cho người mới bắt đầu cho tới các phương pháp nâng cao dành cho những người đã có kinh nghiệm và muốn tối ưu hoá quy trình gộp file Excel.
Có thể bạn quan tâm: Ghép Nội Dung 2 Cột Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Hiểu Rõ Nhu Cầu Gộp File Excel
Trước khi bắt tay vào thực hiện, bạn cần xác định rõ mục tiêu của việc gộp dữ liệu:
| Yêu Cầu | Mô Tả |
|---|---|
| Kết hợp dữ liệu từ nhiều sheet | Các file có cùng cấu trúc nhưng dữ liệu nằm trên các sheet khác nhau. |
| Kết hợp dữ liệu từ các file có cấu trúc khác nhau | Cần chuẩn hoá (normalize) dữ liệu trước khi gộp. |
| Cập nhật dữ liệu định kỳ | Thiết lập quy trình tự động để gộp dữ liệu mỗi tuần/tháng. |
| Lưu trữ và phân tích | Gộp dữ liệu để tạo báo cáo tổng hợp, phân tích thống kê. |
Việc xác định nhu cầu sẽ giúp bạn lựa chọn công cụ và phương pháp phù hợp nhất.
Có thể bạn quan tâm: Cách Lọc Độ Tuổi Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Các Phương Pháp Gộp File Excel Cơ Bản
2.1. Sử Dụng Tính Năng “Copy – Paste”
Đây là cách đơn giản nhất, phù hợp khi:
- Số lượng file ít (dưới 5 file).
- Dữ liệu không quá lớn (dưới 10.000 dòng mỗi file).
- Cấu trúc dữ liệu hoàn toàn giống nhau.
Bước thực hiện:
- Mở file Excel đầu tiên, chọn toàn bộ dữ liệu (Ctrl + A) → Copy (Ctrl + C).
- Mở file đích (hoặc tạo một file mới), đặt con trỏ vào ô A1 → Paste (Ctrl + V).
- Lặp lại các bước trên cho các file còn lại, chú ý dán dữ liệu vào hàng tiếp theo để tránh trùng lặp tiêu đề.
Lưu ý: Khi dán nhiều lần, có thể xuất hiện các dòng trống hoặc định dạng không đồng nhất. Bạn nên sử dụng tính năng “Remove Duplicates” (Data → Remove Duplicates) và “Clear Formats” (Home → Clear → Clear Formats) để làm sạch dữ liệu.
2.2. Sử Dụng Power Query (Get & Transform)
Power Query là một công cụ mạnh mẽ tích hợp trong Excel (từ Excel 2026 trở lên) cho phép nhập, biến đổi và gộp dữ liệu một cách tự động.
2.2.1. Nhập Nhiều File Cùng Thời Điểm
- Mở Excel → Tab “Data” → “Get Data” → “From File” → “From Folder”.
- Chọn thư mục chứa các file Excel cần gộp. Excel sẽ liệt kê tất cả các file trong thư mục đó.
- Nhấn “Combine & Load”. Một cửa sổ hiện ra yêu cầu bạn chọn sheet hoặc bảng cần kết hợp.
- Chọn sheet (hoặc table) chuẩn và nhấn “OK”. Power Query sẽ tự động tạo một truy vấn (query) gộp toàn bộ dữ liệu.
- Chỉnh sửa (nếu cần): Trong Power Query Editor, bạn có thể loại bỏ cột không cần, thay đổi kiểu dữ liệu, hoặc lọc dữ liệu.
- Nhấn “Close & Load” để tải dữ liệu đã gộp vào một sheet mới.
2.2.2. Lợi Ích Khi Dùng Power Query
- Tự động cập nhật: Khi có file mới được thêm vào thư mục, chỉ cần refresh (F5) là dữ liệu sẽ được gộp lại.
- Xử lý dữ liệu lớn: Power Query có khả năng làm việc với hàng trăm nghìn dòng mà không gây treo Excel.
- Biến đổi dữ liệu: Thêm, xóa, tách cột, ghép cột, thay đổi định dạng số, ngày tháng… đều thực hiện trong môi trường đồ họa không cần viết mã.
2.3. Dùng VBA (Macro) Để Gộp Tự Động
VBA (Visual Basic for Applications) là ngôn ngữ lập trình nội bộ của Excel, cho phép tạo macro tự động hoá quy trình gộp file. Phương pháp này thích hợp khi:
- Cần gộp hàng chục, hàng trăm file thường xuyên.
- Yêu cầu tùy biến sâu (ví dụ: chỉ gộp các cột nhất định, chỉ lấy dữ liệu mới hơn ngày X).
2.3.1. Mã VBA Cơ Bản
Sub GopFileExcel() Dim FolderPath As String Dim Filename As String Dim wbSource As Workbook Dim wsDest As Worksheet Dim LastRow As Long ' Đường dẫn tới thư mục chứa các file FolderPath = "C:\Data\Excels\" ' Đặt sheet đích Set wsDest = ThisWorkbook.Sheets("Sheet1") ' Lặp qua từng file .xlsx trong thư mục Filename = Dir(FolderPath & ".xlsx") Do While Filename <> "" Set wbSource = Workbooks.Open(FolderPath & Filename) ' Giả sử dữ liệu cần gộp nằm ở Sheet1, cột A đến D With wbSource.Sheets(1) LastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1 .Range("A2:D" & .Cells(.Rows.Count, "A").End(xlUp).Row).Copy _ wsDest.Cells(LastRow, "A") End With wbSource.Close SaveChanges:=False Filename = Dir ' Lấy file tiếp theo Loop MsgBox "Hoàn tất gộp file!", vbInformation
End Sub
Giải thích mã:
FolderPath: Đường dẫn thư mục chứa các file Excel.Dir(FolderPath & ".xlsx"): Lấy tên file .xlsx đầu tiên.- Vòng lặp
Do Whileduyệt qua toàn bộ file trong thư mục. - Mở từng file, sao chép dữ liệu từ A2:D (bỏ qua tiêu đề) và dán vào sheet đích.
- Đóng file nguồn mà không lưu thay đổi.
2.3.2. Mở Rộng Mã VBA
Bạn có thể mở rộng để:
- Kiểm tra tiêu đề: Chỉ gộp khi tiêu đề trùng khớp.
- Gộp dữ liệu theo điều kiện: Ví dụ, chỉ gộp các dòng có giá trị “Status = Completed”.
- Xử lý file .xls, .csv: Thay đổi phần mở file cho phù hợp.
2.4. Sử Dụng Các Công Cụ Bên Ngoài
| Công cụ | Ưu điểm | Nhược điểm |
|---|---|---|
| Alteryx | Giao diện kéo-thả, mạnh mẽ cho data blending | Phải mua bản quyền |
| Python (pandas) | Xử lý dữ liệu lớn, tự động hoá qua script | Cần kiến thức lập trình |
| Google Sheets + Apps Script | Dễ chia sẻ, không cần cài đặt | Giới hạn kích thước (5M ô) |
| Power Automate | Tự động hoá quy trình trên cloud | Cần cấu hình và có thể mất phí |
Trong phần tiếp theo, chúng ta sẽ đi sâu vào cách sử dụng Python (pandas) để gộp file Excel, vì đây là phương pháp rất phổ biến trong cộng đồng data analyst.
3. Gộp File Excel Bằng Python – Thư Viện pandas
3.1. Chuẩn Bị Môi Trường
- Cài đặt Python (phiên bản 3.8 trở lên) từ https://www.python.org/downloads/
- Cài đặt pandas và openpyxl (để đọc/ghi file .xlsx):
pip install pandas openpyxl
3.2. Cấu Trúc Thư Mục
project/
│
├─ data/
│ ├─ file1.xlsx
│ ├─ file2.xlsx
│ └─ file3.xlsx
│
└─ merge_excel.py
3.3. Mã Python Cơ Bản
import pandas as pd
import os # Đường dẫn tới thư mục chứa file Excel
folder_path = r'./data' # Danh sách các file .xlsx trong thư mục
excel_files = f for f in os.listdir(folder_path) if f.endswith('.xlsx') # Danh sách DataFrame để lưu trữ từng file
df_list = for file in excel_files: file_path = os.path.join(folder_path, file) # Đọc sheet đầu tiên, bỏ qua hàng tiêu đề (nếu cần) df = pd.read_excel(file_path, sheet_name=0, header=0) df_list.append(df) # Gộp tất cả DataFrame lại
merged_df = pd.concat(df_list, ignore_index=True) # Xóa các dòng trùng lặp (nếu có)
merged_df.drop_duplicates(inplace=True) # Lưu kết quả vào file mới
output_path = r'./merged_result.xlsx'
merged_df.to_excel(output_path, index=False) print(f'Gộp {len(excel_files)} file hoàn tất. File lưu tại: {output_path}')
Giải Thích:
os.listdirlấy danh sách file trong thư mục.pd.read_excelđọc mỗi file vào DataFrame.pd.concatgộp các DataFrame lại với nhau.ignore_index=Trueđể đánh số lại chỉ mục.drop_duplicatesloại bỏ các dòng trùng lặp.to_excelghi ra file kết quả.
3.4. Xử Lý Khi Các File Có Cấu Trúc Khác Nhau
Nếu các file có cột khác nhau, bạn có thể:
- Sử dụng
join: Đảm bảo các cột chung được giữ lại. - Thêm cột “Source” để biết dữ liệu xuất phát từ file nào:
for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) df'SourceFile' = file # Thêm cột ghi tên file df_list.append(df) merged_df = pd.concat(df_list, ignore_index=True, sort=False) # sort=False giữ nguyên thứ tự cột
3.5. Tự Động Hóa Định Kỳ Với Task Scheduler (Windows) Hoặc Cron (Linux)
Sau khi viết script merge_excel.py, bạn có thể lên lịch chạy mỗi ngày:
- Windows Task Scheduler:
- Mở “Task Scheduler”.
- Tạo “Basic Task” → Đặt thời gian chạy (hàng ngày/tuần).
Action: “Start a program” → Chọn
python.exevà nhập đường dẫn script.Linux Cron:
bash crontab -e # Thêm dòng sau để chạy mỗi ngày 02:00 sáng 0 2 /usr/bin/python3 /path/to/merge_excel.py
4. Các Bước Kiểm Tra Và Làm Sạch Dữ Liệu Sau Khi Gộp

Có thể bạn quan tâm: Cách Viết Dấu Mũ Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Sau khi gộp dữ liệu, việc kiểm tra chất lượng là rất quan trọng để tránh lỗi trong báo cáo.
4.1. Kiểm Tra Dòng Trùng Lặp
- Excel: Data → Remove Duplicates.
- Power Query: Home → Remove Rows → Remove Duplicates.
- Python:
df.drop_duplicates(inplace=True).
4.2. Kiểm Tra Kiểu Dữ Liệu
| Cột | Kiểu Dữ Liệu Mong Muốn | Kiểm Tra |
|---|---|---|
| Ngày | Date (dd/mm/yyyy) | =ISNUMBER(A2) trong Excel hoặc pd.to_datetime trong Python |
| Số lượng | Number (Integer) | =ISNUMBER(B2) và =MOD(B2,1)=0 |
| Mã khách hàng | Text (Fixed length) | =LEN(C2)=5 |
4.3. Loại Bỏ Dòng Trống Hoặc Dòng Không Hợp Lệ
- Excel: Filter → Uncheck “Blanks”.
- Power Query: Home → Remove Rows → Remove Blank Rows.
- Python:
df.dropna(subset='ColumnName', inplace=True).
4.4. Kiểm Tra Tổng Quan
- Số lượng bản ghi: So sánh tổng số dòng sau khi gộp với tổng số dòng của từng file.
- Tổng giá trị: Nếu có cột “Amount”, kiểm tra tổng cộng:
=SUM(D:D)trong Excel hoặcdf'Amount'.sum()trong Python.
5. Tự Động Hóa Toàn Bộ Quy Trình Với Power Automate (Flow)
Power Automate (trước đây là Microsoft Flow) cho phép tạo workflow tự động trong môi trường Microsoft 365.
5.1. Các Bước Cơ Bản
- Trigger: “When a file is created” hoặc “When a file is modified” trong OneDrive/SharePoint.
- Action: “List files in folder” để lấy danh sách file Excel.
- Apply to each: Duyệt qua danh sách, dùng “Get file content” và “Add rows to a table” (hoặc “Create CSV table”).
- Compose: Gộp dữ liệu thành một file tạm thời.
- Create file: Lưu file gộp vào thư mục đích.
- Notify: Gửi email hoặc Teams notification để báo cáo hoàn thành.
5.2. Ưu Điểm
- Không cần viết code.
- Hoạt động trên cloud, dễ chia sẻ cho toàn bộ team.
- Kết nối đa nền tảng: OneDrive, SharePoint, Teams, Outlook…
5.3. Nhược Điểm
- Giới hạn số lượng hành động trong gói miễn phí.
- Xử lý dữ liệu lớn có thể chậm hoặc gặp lỗi timeout.
6. Khi Nào Nên Chọn Phương Pháp Nào?
| Tiêu chí | Copy‑Paste | Power Query | VBA | Python (pandas) | Power Automate |
|---|---|---|---|---|---|
| Số file | < 5 | 5‑100 | 10‑200 | > 20 | > 30 (đều ở cloud) |
| Kích thước dữ liệu | < 10.000 dòng | < 200.000 dòng | < 500.000 dòng | > 100.000 dòng | < 200.000 dòng (giới hạn cloud) |
| Yêu cầu tự động hoá định kỳ | Không | Có (Refresh) | Có (Macro + Task Scheduler) | Có (Cron/Task Scheduler) | Có (Schedule Flow) |
| Kiến thức kỹ thuật | Thấp | Trung bình | Trung bình‑Cao | Cao (Python) | Thấp‑Trung bình |
| Chi phí | 0 | 0 (Excel) | 0 (nếu không mua add‑in) | 0 (nếu có Python) | Có thể mất phí Office 365 Premium |
7. Một Số Mẹo Thực Tiễn Khi Gộp File Excel
- Chuẩn hoá tiêu đề: Đảm bảo tất cả file có cùng tên cột (vd: “Tên Khách Hàng” vs “Customer Name”). Sử dụng Power Query “Rename Columns” hoặc VBA để tự động đổi tên.
- Thêm cột “Source”: Giúp trace nguồn dữ liệu khi cần kiểm tra.
- Sử dụng định dạng bảng (Table): Khi dữ liệu trong mỗi file được định dạng dưới dạng Table, Power Query sẽ tự động nhận diện và gộp mà không cần chỉ định phạm vi.
- Lưu file gộp ở định dạng .xlsx: Tránh .xls vì giới hạn 65.536 dòng.
- Kiểm tra quyền truy cập: Khi chạy macro hoặc script trên server, đảm bảo tài khoản có quyền đọc/ghi thư mục.
- Sao lưu: Trước khi thực hiện gộp, luôn sao lưu các file gốc để tránh mất mát dữ liệu.
8. Ví Dụ Thực Tế: Gộp Báo Cáo Bán Hàng Hàng Tháng
Giả sử công ty bạn nhận được 12 file báo cáo bán hàng từ 12 chi nhánh, mỗi file có cấu trúc:
| Date | Branch | Product | Quantity | Revenue |
|---|---|---|---|---|
Mục tiêu: Tạo một file tổng hợp để phân tích doanh thu toàn công ty.
8.1. Sử Dụng Power Query
- Đặt tất cả 12 file vào thư mục
C:\Sales\Monthly. - Trong Excel → Data → Get Data → From Folder.
- Power Query sẽ hiển thị 12 file, click “Combine”.
- Trong cửa sổ “Combine Files”, chọn sheet “Report”.
- Thêm cột “Branch” nếu chưa có (lấy từ tên file bằng hàm
Text.BeforeDelimiter(Name,".xlsx")). - Xóa các cột không cần, thay đổi kiểu
Datecho cột Date,Whole Numbercho Quantity,Currencycho Revenue. - Close & Load → Đã có bảng tổng hợp.
8.2. Sử Dụng Python
import pandas as pd
import glob
import os folder = r'C:\Sales\Monthly'
all_files = glob.glob(os.path.join(folder, ".xlsx")) df_list = for f in all_files: df = pd.read_excel(f) # Lấy tên chi nhánh từ tên file branch_name = os.path.splitext(os.path.basename(f))0 df'Branch' = branch_name df_list.append(df) merged = pd.concat(df_list, ignore_index=True)
merged.to_excel(r'C:\Sales\All_Year_Sales.xlsx', index=False)
print('Gộp xong! Tổng số dòng:', len(merged))
Kết quả: File All_Year_Sales.xlsx chứa 12× (số dòng mỗi chi nhánh) bản ghi, sẵn sàng cho PivotTable hoặc Power BI.
9. Xử Lý Lỗi Thường Gặp Khi Gộp File Excel
| Lỗi | Nguyên Nhân | Cách Khắc Phục |
|---|---|---|
| #REF! khi copy công thức | Tham chiếu tới ô không tồn tại trong file đích | Thay công thức bằng giá trị tĩnh hoặc dùng Paste Special → Values. |
| File không mở được trong VBA | Định dạng file khác (.xlsm, .csv) hoặc file bị khóa | Kiểm tra định dạng, dùng Workbooks.Open(Filename, ReadOnly:=True). |
| Power Query báo “Data source error” | File đang mở ở chế độ read‑only hoặc có bảo mật macro | Đóng file đang mở, hoặc tắt “Enable Background Refresh”. |
| Python báo “UnicodeDecodeError” | File chứa ký tự Unicode không được hỗ trợ bởi engine mặc định | Thêm tham số encoding='utf-8' hoặc engine='openpyxl'. |
| Power Automate timeout | Dữ liệu quá lớn, vượt quá giới hạn 5 MB/step | Chia nhỏ quy trình, dùng Azure Functions hoặc Logic Apps để xử lý. |
10. Kết Luận
Việc gộp các file Excel không còn là công việc tốn thời gian và công sức nếu bạn nắm vững các công cụ và phương pháp phù hợp. Từ cách đơn giản nhất là copy‑paste, tới Power Query cho người dùng không muốn viết code, tới VBA và Python cho những ai cần tự động hoá quy trình phức tạp, và cuối cùng là Power Automate cho môi trường cloud và cộng tác nhóm.
Bạn hãy tự đánh giá nhu cầu thực tế (số lượng file, độ lớn dữ liệu, tần suất gộp) và chọn công cụ phù hợp. Đừng quên thực hiện các bước kiểm tra và làm sạch dữ liệu sau khi gộp để đảm bảo độ tin cậy cho các báo cáo và phân tích tiếp theo. Hy vọng bài viết này đã cung cấp cho bạn một bộ công cụ toàn diện, giúp bạn tự tin xử lý mọi tình huống gộp file Excel trong công việc hàng ngày.
Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
