2026-07-27 · Power Query & Excel
Cuối năm, bạn mở file "Doanh thu 2026.xlsx" và đếm được 12 sheet: T1, T2, T3... cho tới T12. Cùng một mẫu bảng, chỉ khác dữ liệu. Sếp cần một bảng tổng cả năm để cắm PivotTable. Việc của bạn là mở từng sheet, bôi đen, Ctrl+C, nhảy sang sheet tổng, Ctrl+V — lặp 12 lần, vừa dán vừa nhớ xem sheet nào dán rồi.
Nếu file của bạn là 30 sheet chi nhánh thay vì 12 sheet tháng, câu chuyện còn mệt hơn. Tin tốt: Excel đã có sẵn công cụ giải quyết việc này. Bài viết hướng dẫn cách gộp nhiều sheet Excel trong cùng một file thành một bảng duy nhất bằng Power Query — làm một lần, kỳ sau chỉ bấm Refresh.
Đội ngũ EzTech sẽ đi qua từng thao tác thật, kèm cách xử lý các bẫy mà nhiều hướng dẫn khác bỏ qua: sheet ẩn, sheet tổng hợp gộp nhầm, dòng tiêu đề lặp, dữ liệu không bắt đầu từ dòng 1.
Gộp nhiều sheet Excel khác gì gộp nhiều file Excel?
Hai tình huống nghe giống nhau nhưng cách làm khác hẳn, nên cần phân biệt ngay:
- Nhiều FILE trong một thư mục — mỗi chi nhánh gửi về một file .xlsx riêng. Cách làm là Get Data → From Folder → Combine, đã hướng dẫn trong bài gộp nhiều file Excel thành 1 bằng Power Query.
- Nhiều SHEET trong cùng một file — tất cả nằm trong một workbook, chia theo tab T1...T12 hoặc theo tên chi nhánh. Đây là nội dung bài này, và không dùng From Folder.
Vì sao nên bỏ copy-paste:
| Tiêu chí | Copy-paste thủ công | Power Query |
|---|---|---|
| Công sức mỗi kỳ | Lặp lại từ đầu | Dựng một lần, sau đó Refresh |
| Có thêm sheet mới | Dán thêm tay, dễ quên | Tự nhận khi Refresh |
| Truy vết nguồn | Không biết dòng nào của sheet nào | Có cột tên sheet đi kèm từng dòng |
Thêm nữa, dán tay là dán rủi ro: nghiên cứu của EuSpRIG (European Spreadsheet Risks Interest Group) cho thấy khoảng 50–86% bảng tính có chứa lỗi.
Chuẩn bị trước khi gộp
Cách này chạy tốt nhất khi các sheet cùng cấu trúc cột. Ba việc nên làm trước:
- Lưu file dữ liệu lại (Ctrl+S). Power Query đọc bản đã lưu trên ổ đĩa, không đọc thứ bạn vừa gõ mà chưa lưu — đây là nguyên nhân số một khiến người mới thấy "Refresh không ra dữ liệu mới".
- Rà nhanh 2–3 sheet: tên cột và thứ tự cột có giống nhau không, dữ liệu bắt đầu ngay dòng 1 hay có dòng tiêu đề trang trí phía trên.
- Tạo một file Excel mới, trống để chứa query và bảng kết quả, giữ file dữ liệu gốc sạch sẽ.
Excel 2016 trở lên (kể cả Microsoft 365) đã có sẵn Power Query trong tab Data.
7 bước gộp nhiều sheet Excel bằng Power Query
Bước 1: Data → Get Data → From File → From Workbook
Mở file tổng vừa tạo, vào tab Data → Get Data → From File → From Workbook. Trỏ tới file chứa 12 sheet dữ liệu rồi bấm Import.
Bước 2: Vào Editor và chỉ giữ bước Source
Cửa sổ Navigator hiện danh sách sheet. Đừng chọn từng sheet — click một sheet bất kỳ rồi bấm Transform Data để mở Power Query Editor.
Trong khung Applied Steps bên phải, Power Query đã tự thêm vài bước: Navigation, Promoted Headers, Changed Type. Xóa hết (click dấu X bên trái từng bước), chỉ giữ bước Source. Màn hình lập tức đổi thành bảng liệt kê mọi đối tượng trong file với 5 cột: Name, Data, Item, Kind, Hidden. Đây chính là "danh bạ" sheet bạn cần.
Bước 3: Lọc Kind = "Sheet" và bỏ sheet ẩn
Cột Kind phân loại đối tượng: Sheet, Table, DefinedName. File vừa có sheet vừa có Table thì cùng một khối dữ liệu xuất hiện hai lần — gộp vào là số nhân đôi. Click nút lọc ở cột Kind, chỉ tick Sheet. Sau đó lọc cột Hidden, bỏ tick TRUE để loại sheet ẩn — thường là sheet nháp bạn đã quên.
Bước 4: Loại sheet không phải dữ liệu
File nào cũng có vài sheet "không phải dữ liệu": Tổng hợp, Danh mục, Hướng dẫn. Gộp nhầm sheet Tổng hợp là doanh thu bị tính hai lần — lỗi rất khó phát hiện vì bảng vẫn chạy bình thường.
Click nút lọc ở cột Name. Nếu sheet dữ liệu có quy tắc đặt tên rõ ràng, hãy lọc theo quy tắc — Text Filters → Begins With nhập T, hoặc Does Not Contain chữ Tổng. Lọc theo quy tắc sẽ tự đúng với sheet phát sinh sau này; bỏ tick thủ công thì sheet mới bị loại oan.
Bước 5: Giữ 2 cột và đặt tên cột "Tháng"
Bạn chỉ cần Name và Data. Chọn hai cột, click phải → Remove Other Columns.
Đây là mẹo quan trọng nhất của bài: đổi tên cột Name thành "Tháng" (hoặc "Chi nhánh", "Kho") bằng cách double-click vào tên cột. Tên sheet cho biết mỗi dòng thuộc kỳ nào, đơn vị nào — thông tin mà copy-paste thường làm mất. Giữ cột này thì PivotTable lọc theo tháng hay so sánh chi nhánh đều nhẹ nhàng.
Bước 6: Expand cột Data và xử lý dòng tiêu đề
Click biểu tượng hai mũi tên ở đầu cột Data, bỏ tick "Use original column name as prefix", bấm OK. Dữ liệu 12 sheet bung ra thành một bảng dài, kèm cột Tháng bên trái.
Tên cột lúc này còn là Column1, Column2... Bấm Home → Use First Row as Headers. Hai việc phải làm ngay sau đó:
- Đổi lại tên cột đầu tiên — bước Promote Headers lấy luôn giá trị dòng đầu của cột Tháng (ví dụ "T1") làm tên cột. Double-click đổi lại thành "Tháng".
- Lọc bỏ dòng tiêu đề lặp — chỉ dòng đầu của sheet T1 thành header, tiêu đề của 11 sheet còn lại vẫn nằm trong dữ liệu. Click nút lọc ở một cột chắc chắn là số (ví dụ "Doanh thu") rồi bỏ tick giá trị trùng tên cột.
Có cách gọn hơn nếu bạn đã quen Power Query: thêm Add Column → Custom Column với công thức = Table.PromoteHeaders([Data]), xóa cột Data cũ rồi mới Expand cột mới. Cách này promote header cho từng sheet trước khi nối nên không sinh dòng tiêu đề lặp nào.
Bước 7: Đặt kiểu dữ liệu và Close & Load
Kiểm tra biểu tượng đầu mỗi cột: 123 là số, ABC là chữ, hình lịch là ngày. Cột số tiền phải là Decimal Number, cột ngày phải là Date — cột ngày hay bướng nhất, gặp lỗi thì xem bài sửa lỗi ngày tháng trong Power Query.
Cuối cùng bấm Close & Load. Kỳ sau có thêm sheet T13: lưu file gốc, mở file tổng, vào Data → Refresh All. Sheet mới tự vào bảng, không phải sửa gì.
Cách 2: dùng Excel.CurrentWorkbook() khi dữ liệu đã là Table
Nếu dữ liệu mỗi sheet đã được định dạng thành Table (bôi đen vùng dữ liệu, bấm Ctrl+T), có một lối ngắn hơn, làm ngay trong chính file đó:
- Vào Data → Get Data → From Other Sources → Blank Query.
- Trên thanh công thức, gõ
= Excel.CurrentWorkbook()rồi Enter. - Bảng hiện ra hai cột
ContentvàName. Đặt tên Table theo tháng — Table_T1, Table_T2... — thìNamethành cột phân loại luôn. - Lọc bỏ Table không cần, Expand
Content, đặt kiểu dữ liệu, Close & Load.
Điểm phải nhớ: Excel.CurrentWorkbook() chỉ nhìn thấy Table và vùng đặt tên, không nhìn thấy sheet thường — sheet chưa Ctrl+T sẽ không xuất hiện. Cách này hợp khi bạn toàn quyền chỉnh file gốc; nhận file từ người khác thì Cách 1 an toàn hơn.
Bảy cái bẫy hay gặp và cách xử lý
| Bẫy | Dấu hiệu | Cách xử lý |
|---|---|---|
| Sheet lệch cột | Có cột toàn null, số nằm nhầm cột | Chuẩn hóa file gốc; nếu chỉ khác thứ tự cột thì dùng mẹo Table.PromoteHeaders ở Bước 6 |
| Dòng tiêu đề lặp | Giữa bảng có dòng chữ "Ngày", "Doanh thu" | Lọc bỏ theo Bước 6, hoặc promote header từng sheet trước khi Expand |
| Sheet tổng hợp gộp nhầm | Doanh thu tổng cao gấp đôi thực tế | Lọc cột Name theo quy tắc đặt tên, đừng bỏ tick thủ công |
| Sheet ẩn | Có dòng lạ không thuộc sheet nào bạn thấy | Lọc cột Hidden, bỏ tick TRUE |
| Dữ liệu không bắt đầu ở dòng 1 | Vài dòng đầu là tên công ty, tiêu đề báo cáo | Home → Remove Rows → Remove Top Rows; số dòng thừa khác nhau giữa các sheet thì lọc bỏ dòng có ô khóa null |
| Ô merge | Ô đầu có giá trị, các ô dưới là null | Bỏ merge ở file gốc; không sửa được thì chọn cột đó → Transform → Fill → Down |
| Đổi tên sheet giữa chừng | Refresh xong thiếu hẳn dữ liệu một kỳ | Thống nhất quy tắc đặt tên sheet từ đầu năm |
Câu hỏi thường gặp
Thêm sheet mới có phải làm lại query không?
Không — đây là điểm mạnh nhất của cách này. Thêm sheet T13, lưu file gốc, rồi bấm Data → Refresh All ở file tổng là sheet mới tự vào bảng. Điều kiện duy nhất: sheet mới phải lọt qua bộ lọc ở Bước 4. Lọc bằng cách bỏ tick thủ công thì Power Query nhớ đúng danh sách tên cũ và sẽ bỏ qua sheet mới.
Các sheet khác cấu trúc cột thì gộp được không?
Nếu chỉ khác thứ tự cột nhưng tên cột giống nhau, dùng mẹo Table.PromoteHeaders ở Bước 6 là Power Query tự khớp theo tên. Nếu khác cả tên cột (sheet ghi "Doanh thu", sheet ghi "DT") thì phải chuẩn hóa trước khi gộp. Giải pháp bền nhất vẫn là thống nhất một mẫu bảng chung cho cả năm.
Gộp xong có làm nặng file không?
Bảng kết quả là bảng Excel bình thường nên vẫn chiếm dung lượng. Nếu 12 sheet cộng lại quá lớn, chọn Close & Load To → Only Create Connection kèm tick Add this data to the Data Model — dữ liệu nén tốt hơn nhiều và bạn cắm PivotTable thẳng vào đó.
Từ gộp sheet đến làm chủ dữ liệu
Gộp sheet chỉ là một trong rất nhiều việc Power Query làm được. Cùng triết lý "làm một lần, Refresh mãi mãi", công cụ này còn giúp làm sạch dữ liệu bẩn, dùng Merge Queries thay VLOOKUP, unpivot bảng chéo, đối chiếu công nợ. Nếu bạn mới bắt đầu, bài Power Query cho kế toán là điểm khởi hành tốt.
Muốn tự kiểm tra mình đang ở đâu, hãy thử bài trắc nghiệm Power Query miễn phí của EzTech. Còn nếu bạn làm kế toán - tài chính và muốn đi đường dài — từ Power Query chuyên sâu trong Excel đến dựng báo cáo tài chính, quản trị trên Power BI — khóa DATA FINANCE được đội ngũ EzTech thiết kế đúng cho lộ trình đó, dạy bởi Th.S Trần Hà Tuấn Anh, cựu Head of Data tại NGS IT & CMC Global. Hẹn gặp các bạn trong lớp!