EzTech

Gộp nhiều sheet trong 1 file Excel bằng Power Query

2026-07-27 · Power Query & Excel

Gộp nhiều sheet trong 1 file Excel bằng Power Query

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.

Màn hình laptop mở file Excel nhiều sheet dữ liệu cần gộp lại
Một file, hàng chục sheet cùng mẫu — gộp tay 12 lần mỗi năm là việc Power Query làm hộ được. (Ảnh: Unsplash)

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ôngPower Query
Công sức mỗi kỳLặp lại từ đầuDựng một lần, sau đó Refresh
Có thêm sheet mớiDán thêm tay, dễ quênTự nhận khi Refresh
Truy vết nguồnKhông biết dòng nào của sheet nàoCó 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:

  1. 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".
  2. 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.
  3. 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

Sơ đồ 7 bước gộp nhiều sheet Excel trong cùng một file bằng Power Query
Toàn bộ đường đi từ file 12 sheet đến một bảng tổng duy nhất.

Bước 1: Data → Get Data → From File → From Workbook

Mở file tổng vừa tạo, vào tab DataGet DataFrom FileFrom 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 NameData. 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.

So sánh bảng danh bạ sheet sau bước Source và bảng tổng có cột Tháng sau khi Expand trong Power Query
Bên trái là danh bạ sheet Power Query nhìn thấy; bên phải là bảng tổng sau khi lọc và Expand.

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 đó:

  1. Vào Data → Get Data → From Other Sources → Blank Query.
  2. Trên thanh công thức, gõ = Excel.CurrentWorkbook() rồi Enter.
  3. Bảng hiện ra hai cột ContentName. Đặt tên Table theo tháng — Table_T1, Table_T2... — thì Name thành cột phân loại luôn.
  4. 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ẫyDấu hiệuCách xử lý
Sheet lệch cộtCó cột toàn null, số nằm nhầm cộtChuẩ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ặpGiữ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ầmDoanh 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 ẩnCó dòng lạ không thuộc sheet nào bạn thấyLọc cột Hidden, bỏ tick TRUE
Dữ liệu không bắt đầu ở dòng 1Vài dòng đầu là tên công ty, tiêu đề báo cáoHome → 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à nullBỏ merge ở file gốc; không sửa được thì chọn cột đó → Transform → Fill → Down
Đổi tên sheet giữa chừngRefresh 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!

Chat ZaloGọi điệnMessengerTìm đường