2026-07-23 · Power Query & Excel
Cuối tháng, bạn mở file bảng lương 20.000 dòng, kéo một cột VLOOKUP để tra phòng ban cho từng nhân viên — và Excel bắt đầu quay vòng vòng. Thanh trạng thái hiện "Calculating: 47%", gõ thêm một ô là cả file đứng hình vài giây. Bạn tự nhủ "chắc tại máy yếu" — nhưng vấn đề không nằm ở cái máy.
Vấn đề nằm ở chỗ VLOOKUP sinh ra để tra cứu từng ô một, còn việc bạn đang làm là nối 2 bảng dữ liệu với nhau. Khi dữ liệu chỉ vài trăm dòng, hai việc này trông giống nhau. Khi dữ liệu lên hàng chục nghìn dòng, khác biệt lộ ra ngay: VLOOKUP với dữ liệu lớn vừa chậm, vừa dễ sai theo những cách rất khó phát hiện.
Trong bài này, đội ngũ EzTech sẽ chỉ cho bạn công cụ được thiết kế đúng cho việc đó: Merge Queries trong Power Query — có sẵn ngay trong Excel, không cần cài thêm gì, và xử lý 20.000 dòng nhẹ như 200 dòng.
VLOOKUP "sai âm thầm": 4 rủi ro ít ai để ý khi dữ liệu lớn
Chậm là phiền, nhưng chưa phải điều đáng sợ nhất. Theo tổng hợp của EuSpRIG (European Spreadsheet Risks Interest Group — tổ chức chuyên nghiên cứu rủi ro bảng tính), khoảng 50–86% bảng tính được kiểm tra có chứa lỗi. Và VLOOKUP đóng góp vào con số đó theo 4 cách rất "âm thầm":
1. Kéo thiếu công thức
Bạn kéo công thức đến dòng 18.000 trong khi dữ liệu đã lên 20.000 dòng — 2.000 dòng cuối trống trơn, không báo lỗi gì. Tổng vẫn ra một con số trông rất "hợp lý", chỉ là thiếu mất một phần dữ liệu, và không ai biết cho đến khi đối chiếu lệch.
2. Chèn cột là sai cột trả về
VLOOKUP đếm cột bằng con số cố định: col_index_num = 3 nghĩa là "lấy cột thứ 3". Một đồng nghiệp chèn thêm một cột vào bảng tra — cột thứ 3 giờ là cột khác — và toàn bộ công thức lặng lẽ trả về sai giá trị. Không có #N/A, không có cảnh báo, chỉ có số sai nằm im trong báo cáo.
3. #N/A bị IFERROR "nuốt" mất
Để báo cáo trông sạch sẽ, nhiều bạn bọc luôn IFERROR(VLOOKUP(...), 0) hoặc trả về ô trống. Hậu quả: những dòng không khớp được — mã khách gõ sai, mã mới chưa khai — bị đổi thành số 0 và biến mất khỏi tầm mắt. Đây chính là kiểu "sai âm thầm" nguy hiểm nhất: dữ liệu có vấn đề, nhưng file thì trông hoàn hảo.
4. File phồng và chậm dần đều
Mỗi ô VLOOKUP là một phép tính Excel phải thực hiện lại khi file thay đổi. 20.000 dòng nhân với 5 cột tra cứu là 100.000 công thức sống trong file — mở file chậm, lưu file chậm, sửa một ô cũng chờ. Nếu bạn từng tìm kiếm "vlookup bị chậm" thì gần như chắc chắn nguyên nhân nằm ở đây, không phải ở máy tính.
Merge Queries trong Power Query là gì?
Merge Queries là tính năng nối 2 bảng dữ liệu của Power Query — công cụ xử lý dữ liệu có sẵn trong Excel (từ Excel 2016 trở đi nằm ngay thẻ Data). Nếu bạn đã đọc bài gộp nhiều file Excel bằng Power Query của EzTech thì Merge chính là "người anh em" của Append: Append chồng các bảng lên nhau theo chiều dọc, còn Merge ghép 2 bảng theo chiều ngang dựa trên cột khóa chung — đúng việc mà bạn vẫn dùng VLOOKUP để làm.
Khác biệt cốt lõi so với VLOOKUP nằm ở cách tư duy:
- Xử lý theo bảng, không theo ô. Bạn khai báo một lần "nối bảng A với bảng B theo cột Mã KH" — Power Query tự áp cho toàn bộ dòng, dữ liệu thêm 5.000 dòng hay 50.000 dòng cũng không phải kéo lại công thức.
- Không sợ chèn cột. Merge bám theo tên cột, không đếm cột thứ mấy. Bảng tra thay đổi cấu trúc kiểu gì, kết quả vẫn đúng cột.
- Kiểm soát được dòng không khớp. Dòng nào không tìm thấy trong bảng tra sẽ hiện null rõ ràng — lọc ra xem ngay được, thậm chí có hẳn một kiểu Join chuyên để "bắt" những dòng này (phần dưới sẽ nói kỹ).
- Không phồng file. Kết quả trả về là dữ liệu tĩnh, không phải 100.000 công thức chờ tính lại. Dữ liệu nguồn đổi thì bấm Refresh một cái là xong.
Hướng dẫn 5 bước dùng Merge Queries trong Power Query để nối 2 bảng Excel
Ví dụ thực tế: bạn có bảng Hóa đơn (20.000 dòng: Số HĐ, Ngày, Mã KH, Số tiền) và bảng Danh mục khách hàng (Mã KH, Tên KH, Nhóm KH, Nhân viên phụ trách). Cần đưa tên và nhóm khách hàng vào từng dòng hóa đơn.
Bước 1 — Chuyển 2 vùng dữ liệu thành Table
Click vào giữa vùng dữ liệu hóa đơn, nhấn Ctrl + T → OK. Vào thẻ Table Design, đặt tên bảng là HoaDon. Làm tương tự với danh mục khách hàng, đặt tên KhachHang. Bước này giúp Power Query tự nhận diện vùng dữ liệu kể cả khi thêm dòng mới.
Bước 2 — Đưa 2 bảng vào Power Query
Click vào bảng HoaDon → thẻ Data → From Table/Range. Cửa sổ Power Query Editor mở ra. Chọn Home → Close & Load To… → chọn Only Create Connection (chỉ tạo kết nối, chưa đổ ra sheet). Lặp lại với bảng KhachHang.
Bước 3 — Merge 2 bảng
Vào Data → Get Data → Combine Queries → Merge. Trong hộp thoại: bảng trên chọn HoaDon (bảng chính), bảng dưới chọn KhachHang. Click vào cột Mã KH ở cả 2 bảng để chỉ định cột khóa. Mục Join Kind để mặc định Left Outer. Power Query còn báo trước ngay dưới hộp thoại: "The selection matches 19.850 of 20.000 rows" — bạn biết luôn có 150 dòng không khớp trước cả khi bấm OK. VLOOKUP không bao giờ nói trước cho bạn điều này.
Bước 4 — Chọn cột cần lấy về
Sau khi bấm OK, bảng kết quả có thêm một cột tên KhachHang chứa chữ "Table". Click biểu tượng mũi tên đôi ở tiêu đề cột đó → tick chọn Tên KH và Nhóm KH → bỏ tick "Use original column name as prefix" cho tên cột gọn → OK.
Bước 5 — Đổ kết quả ra sheet
Chọn Home → Close & Load. Xong. Từ nay, khi hóa đơn phát sinh thêm hay danh mục khách đổi tên, bạn chỉ cần Data → Refresh All — không kéo công thức, không dò lại cột, 5 giây có bảng mới.
3 kiểu Join hay dùng nhất — hiểu qua ví dụ kế toán
Join Kind ở Bước 3 chính là chỗ Merge Queries vượt xa VLOOKUP. Ba kiểu bạn sẽ dùng nhiều nhất:
| Kiểu Join | Kết quả trả về | Tình huống kế toán |
|---|---|---|
| Left Outer (mặc định) | Giữ toàn bộ bảng chính, dòng không khớp hiện null | Gắn tên khách vào 20.000 dòng hóa đơn — hóa đơn nào cũng phải còn nguyên |
| Inner | Chỉ giữ dòng khớp ở cả 2 bảng | Lọc hóa đơn của riêng nhóm khách cần kiểm tra |
| Left Anti | Chỉ giữ dòng KHÔNG khớp | Đối chiếu: tìm chênh lệch giữa 2 danh sách |
Left Outer giống VLOOKUP nhất: giữ hết bảng chính, tra được gì thì điền vào. Khác ở chỗ dòng không khớp hiện null minh bạch — bạn lọc cột Tên KH = null là thấy ngay 150 hóa đơn có mã khách chưa khai trong danh mục, thay vì để IFERROR đè số 0 lên rồi quên.
Inner là bộ lọc hai chiều: chỉ dòng có mặt ở cả 2 bảng mới được giữ. Ví dụ sếp đưa danh sách 30 khách hàng trọng điểm, cần rút toàn bộ hóa đơn của đúng 30 khách này từ 20.000 dòng — Merge kiểu Inner với danh sách đó là ra ngay, không cần cột phụ, không cần filter tay.
Left Anti là "vũ khí giấu nghề" mà dân VLOOKUP gần như không biết, vì VLOOKUP không có khái niệm này: nó trả về đúng những dòng không tìm thấy bên bảng kia. Đây chính là bài toán đối chiếu mà kế toán làm hàng ngày: hóa đơn nào có mã khách không tồn tại trong danh mục? Khoản thu nào có trong sổ phụ ngân hàng nhưng chưa vào sổ kế toán? Với VLOOKUP, bạn phải tra xong, lọc #N/A, copy ra chỗ khác. Với Left Anti, đó chỉ là một lựa chọn trong menu — chọn xong có luôn danh sách chênh lệch.
Khi nào vẫn nên dùng VLOOKUP/XLOOKUP?
Nói vậy không có nghĩa là vứt VLOOKUP đi. Công bằng mà nói, VLOOKUP (và XLOOKUP — bản nâng cấp đáng dùng hơn nếu Excel của bạn có) vẫn hợp lý khi:
- Bảng nhỏ, tra nhanh vài ô: tra đơn giá của 10 mã hàng thì gõ công thức nhanh hơn mở Power Query.
- Cần kết quả "sống" theo từng phím gõ: ô tra cứu đổi là kết quả đổi ngay — Merge cần bấm Refresh mới cập nhật.
- File dùng một lần rồi bỏ: việc phát sinh đột xuất, không lặp lại hàng tháng, thì chưa cần đầu tư dựng query.
Nguyên tắc đội ngũ EzTech hay chia sẻ với học viên: tra cứu vài ô — dùng hàm; nối bảng với bảng, làm đi làm lại hàng kỳ — dùng Merge Queries. Chi tiết các bước Merge bạn cũng có thể đối chiếu thêm tài liệu chính thức của Microsoft tại Microsoft Learn.
Câu hỏi thường gặp
Dữ liệu bao nhiêu dòng thì nên chuyển từ VLOOKUP sang Merge Queries?
Không có ngưỡng cứng. Kinh nghiệm thực tế: vài nghìn dòng trở lên, việc lặp lại hàng kỳ, hoặc bạn từng dính lỗi sai cột/sót dòng — đó là lúc nên chuyển.
Dùng Merge Queries có cần biết code M không?
Không. Toàn bộ 5 bước trong bài đều là thao tác chuột trên menu. Code M chạy ngầm phía sau, bạn học sau cũng được — biết thêm thì mạnh hơn, nhưng không biết vẫn dùng tốt.
Dữ liệu nguồn thay đổi thì có phải làm lại từ đầu không?
Không. Các bước bạn làm được ghi lại thành quy trình — dữ liệu mới về, bấm Data → Refresh All là kết quả tự cập nhật.
Excel bản nào có Power Query?
Excel 2016 trở lên có sẵn trong thẻ Data (nhóm Get & Transform Data). Excel 2010/2013 cài thêm add-in miễn phí của Microsoft. Excel trên Mac bản mới cũng đã hỗ trợ, tuy thiếu một số nguồn dữ liệu so với Windows.
Muốn đi xa hơn một công thức?
Merge Queries chỉ là một trong những kỹ thuật giúp bạn chuyển từ "làm Excel bằng tay" sang "vận hành quy trình dữ liệu". Nếu bạn muốn tự kiểm tra xem mình đang ở đâu, hãy thử bài trắc nghiệm Power Query miễn phí của EzTech — làm xong biết ngay phần nào mình còn hổng.
Còn nếu bạn làm kế toán – tài chính và muốn học bài bản từ Power Query chuyên sâu trong Excel đến dựng báo cáo tài chính, báo cáo quản trị trên Power BI, khóa DATA FINANCE của EzTech được thiết kế đúng cho con đường đó — học trên bài toán kế toán thật, do Th.S Trần Hà Tuấn Anh, cựu Head of Data tại NGS IT & CMC Global, trực tiếp giảng dạy. Xem chi tiết chương trình hoặc để lại thông tin để đội ngũ EzTech tư vấn lộ trình phù hợp với nền tảng của bạn.