2026-08-14 · Power Query & Excel
Sếp giao bạn một câu quen thuộc: "Cái báo cáo này tháng nào cũng làm, tự động hóa đi cho nhanh." Bạn mở Google tìm cách làm, và nhận về hai luồng ý kiến trái ngược. Một bên bảo học VBA, viết macro là xong. Bên kia bảo giờ chẳng ai viết VBA nữa, cứ Power Query mà làm.
Câu trả lời ngắn gọn cho người làm kế toán: học Power Query trước. Không phải vì VBA lỗi thời, mà vì phần lớn thời gian bạn đang mất mỗi tháng nằm đúng ở chỗ Power Query giải quyết được, trong khi đường vào lại dễ hơn hẳn.
Bài này nói rõ hai công cụ khác nhau ở đâu, những việc chỉ VBA làm được, và cách chọn theo đúng đầu việc bạn đang phải làm tay.
Hai công cụ giải hai bài toán khác nhau
Trước khi so sánh hơn kém, cần thấy rõ mỗi cái sinh ra để làm gì.
Power Query là công cụ lấy và làm sạch dữ liệu, nằm sẵn trong Excel ở tab Data. Bạn thao tác bằng chuột: chọn nguồn, bỏ cột thừa, tách cột, đổi kiểu dữ liệu, gộp nhiều file. Mỗi thao tác được ghi lại thành một bước trong danh sách Applied Steps. Tháng sau dữ liệu mới về, bạn bấm Refresh, toàn bộ các bước chạy lại theo đúng thứ tự cũ.
VBA là ngôn ngữ lập trình gắn trong bộ Office. Nó không giới hạn ở dữ liệu. VBA điều khiển được cả Excel lẫn các ứng dụng Office khác: tạo nút bấm, mở hộp thoại, gửi mail qua Outlook, in hàng loạt, đổi định dạng theo điều kiện phức tạp. Đổi lại, bạn phải viết code, và code đó phải tự bảo trì.
Nói cách khác, Power Query mạnh ở phần chuẩn bị dữ liệu, còn VBA mạnh ở phần điều khiển thao tác. Rất nhiều người chọn nhầm chỉ vì không tách rõ hai việc này.
Bốn lý do kế toán nên bắt đầu bằng Power Query
1. Không phải viết một dòng code nào
Đây là khác biệt lớn nhất về mặt tâm lý. Với Power Query, bạn bấm chuột và nhìn kết quả đổi ngay trên bảng xem trước. Sai thì xóa bước đó đi làm lại. Với VBA, bạn phải mở cửa sổ soạn code, gõ đúng cú pháp, và khi chạy sai thì nhận một thông báo lỗi mà chính bạn cũng không biết bắt đầu sửa từ đâu.
Power Query vẫn có ngôn ngữ riêng bên dưới, gọi là M. Nhưng bạn dùng được ở mức khá mà không cần đụng tới nó. Còn VBA thì ngay từ dòng đầu tiên đã là lập trình.
2. File giữ nguyên đuôi .xlsx, không vướng chính sách chặn macro
Đây là điểm thực tế mà ít bài so sánh nhắc tới. File có macro phải lưu dưới dạng .xlsm, và từ năm 2022 Microsoft đã chặn macro VBA theo mặc định trong các file Office tải về từ internet, áp dụng cho Excel, Word, PowerPoint, Access và Visio trên Microsoft 365 bản Windows. File gửi qua mail hay tải từ ngoài mạng công ty sẽ hiện dải cảnh báo bảo mật, và người nhận phải tự bỏ chặn thì macro mới chạy.
Với nhiều doanh nghiệp, chính sách này còn được IT siết chặt hơn nữa. Kết quả là file macro bạn dày công viết có thể không chạy được trên máy đồng nghiệp. Power Query không dính vấn đề đó vì nó không phải macro, file vẫn là .xlsx bình thường.
3. Người khác đọc lại được công việc của bạn
Bảng Applied Steps của Power Query là một danh sách các bước bằng tiếng Anh dễ đoán: Removed Columns, Filtered Rows, Merged Queries. Đồng nghiệp mở file ra là thấy bạn đã làm gì, sửa được ngay cả khi chưa từng học.
Một đoạn code VBA dài vài trăm dòng thì ngược lại. Người viết nghỉ việc là cả phòng không ai dám đụng vào, và thường kết cục là quay lại làm tay. Với công việc kế toán vốn phải bàn giao và kiểm tra chéo, điểm này quan trọng hơn nhiều người nghĩ.
4. Học xong dùng được luôn cho Power BI
Power Query không chỉ có trong Excel. Power BI Desktop dùng đúng công cụ đó, gần như cùng giao diện. Nghĩa là mọi thứ bạn học hôm nay để gộp file trong Excel sẽ dùng lại nguyên vẹn khi công ty muốn có dashboard. VBA thì không mang sang được, vì Power BI không chạy VBA.
Vậy VBA còn cần không?
Còn, và đừng ai nói với bạn là không. Có những việc Power Query không làm được vì nó nằm ngoài phạm vi dữ liệu. Cụ thể:
- Gửi mail tự động. Xuất từng bảng công nợ theo khách hàng rồi gửi vào đúng hộp thư của họ qua Outlook. Đây là việc kinh điển của VBA.
- Tạo nút bấm và biểu mẫu nhập liệu. Nếu bạn muốn làm một file cho kế toán viên khác nhập số theo mẫu, có nút "Lưu" và "Xóa trắng", chỉ VBA làm được trong Excel.
- In và xuất PDF hàng loạt. Duyệt qua danh sách chi nhánh, mỗi chi nhánh in một bản riêng và lưu thành file PDF theo tên.
- Thao tác trên chính file và sheet. Tạo sheet mới theo tên khách, đổi định dạng, ẩn hiện dòng, khóa vùng.
- Ghi ngược dữ liệu. Power Query chỉ đọc rồi trả ra bảng kết quả. Nó không ghi ngược vào file nguồn hay đẩy dữ liệu lên hệ thống khác.
Điểm chung của cả năm nhóm việc trên: chúng là hành động, không phải làm sạch dữ liệu. Khi bài toán của bạn rơi vào nhóm đó, VBA là công cụ đúng, dù bạn có thích viết code hay không.
Bảng chọn nhanh theo đầu việc
| Việc bạn đang làm tay mỗi tháng | Nên dùng |
|---|---|
| Gộp 12 file bán hàng của 12 chi nhánh thành một bảng | Power Query |
| Dán dữ liệu xuất từ phần mềm kế toán rồi ngồi sửa định dạng ngày, tách mã | Power Query |
| Đối chiếu công nợ giữa sổ nội bộ và bảng của khách | Power Query |
| Lấy dữ liệu tháng mới rồi dựng lại đúng báo cáo cũ | Power Query |
| Gửi mail nhắc nợ tới từng khách kèm file riêng | VBA |
| Tách một file tổng thành nhiều file con theo chi nhánh và lưu ra thư mục | VBA |
| Làm biểu mẫu nhập liệu có nút bấm cho người khác dùng | VBA |
| In hoặc xuất PDF hàng loạt theo danh sách | VBA |
Nhìn bảng này sẽ thấy một điều: phần lớn thời gian mất đi hàng tháng của người làm kế toán nằm ở nhóm trên, tức nhóm Power Query. Theo khảo sát của Smartsheet, nhân viên văn phòng mất ít nhất 6 giờ mỗi tuần cho các đầu việc lặp đi lặp lại. Với kế toán, phần lớn số giờ đó là chuẩn bị và làm sạch dữ liệu chứ không phải bấm nút gửi mail.
Lộ trình thực tế cho người mới
Nếu bạn đang bắt đầu từ con số không, thứ tự dưới đây tiết kiệm thời gian nhất:
- Học Power Query tới mức gộp file và làm sạch được. Đây là phần trả lại thời gian nhanh nhất. Chọn đúng một báo cáo bạn đang làm tay mỗi tháng và dựng lại nó bằng Power Query.
- Dùng thật vài tháng. Đừng học tiếp vội. Chạy Refresh vài chu kỳ để quen với việc dữ liệu nguồn thay đổi, đổi tên cột, thêm dòng lạ.
- Chỉ học VBA khi gặp đúng bài toán cần nó. Lúc đó bạn không học VBA chung chung nữa mà học đúng phần cần dùng, thường chỉ vài chục dòng.
Cách làm ngược lại, tức lao vào học VBA từ đầu vì nghe nói "biết code thì oai", là lý do nhiều bạn bỏ cuộc sau hai tuần. Đội ngũ EzTech đã viết chi tiết cách bắt đầu từ một báo cáo có thật trong bài Tự động hóa báo cáo Excel.
Câu hỏi thường gặp
Biết VBA rồi thì có cần học Power Query nữa không?
Có, và bạn sẽ học rất nhanh. Nhiều đoạn code VBA xử lý dữ liệu dài hàng trăm dòng làm được bằng vài bước bấm chuột trong Power Query, lại còn dễ sửa hơn. Giữ VBA cho phần gửi mail, in ấn, biểu mẫu; chuyển phần đọc và làm sạch dữ liệu sang Power Query.
Dùng cả hai trong một file được không?
Được. Đây là cách nhiều người làm thực tế: Power Query lo phần lấy và làm sạch dữ liệu, VBA lo phần thao tác cuối như xuất file hay gửi mail. Khi đó file phải lưu dạng .xlsm vì có chứa macro.
Học Power Query mất bao lâu thì làm được việc?
Phần gộp file và làm sạch cơ bản học vài buổi là dùng được, với điều kiện bạn thực hành ngay trên dữ liệu công việc thật chứ không phải file mẫu. Phần khó hơn không nằm ở nút bấm mà ở chỗ dựng quy trình sao cho tháng sau dữ liệu đổi vẫn chạy đúng.
Máy tôi không có Power Query thì sao?
Kiểm tra tab Data xem có nhóm Get & Transform Data không. Nếu không có, bạn xem bài Excel bản nào có Power Query để biết máy mình thuộc nhóm nào và còn đường nào khác.
Chọn đúng công cụ rồi thì bắt đầu từ đâu
Điều đáng tiếc nhất không phải chọn sai công cụ, mà là mất vài tháng phân vân rồi vẫn làm tay như cũ. Bạn cứ lấy đúng một báo cáo đang tốn thời gian nhất, đối chiếu với bảng phía trên, rồi bắt tay dựng lại bằng công cụ tương ứng. Một báo cáo chạy được sẽ dạy bạn nhiều hơn mười video hướng dẫn.
Muốn tự kiểm tra xem mình đang ở đâu, bạn có thể làm thử bộ trắc nghiệm Power Query miễn phí của EzTech. Còn nếu muốn đi thẳng vào phần dựng quy trình cho báo cáo tài chính và quản trị, khóa DATA FINANCE được thiết kế riêng cho người làm kế toán tài chính, học trên chính dạng dữ liệu các bạn gặp hàng ngày. Có gì chưa rõ, cứ nhắn cho đội ngũ EzTech để được tư vấn trước khi quyết định.