2026-07-30 · Power Query & Excel
Bạn dựng xong một query gộp dữ liệu bán hàng, chạy ngon lành suốt hai tháng. Sáng nay bấm Refresh, Excel trả về một dòng đỏ: "Expression.Error: The column 'Doanh thu' of the table wasn't found". Không có gợi ý sửa, không biết bắt đầu từ đâu, mà báo cáo thì phải gửi trước 10 giờ.
Cảm giác này quen với hầu hết người dùng Power Query. Thông báo lỗi viết bằng tiếng Anh kỹ thuật, lại thường mô tả triệu chứng chứ không nói nguyên nhân. Nhưng có một tin tốt: các lỗi Power Query thường gặp chỉ xoay quanh vài nguyên nhân gốc, và mỗi nguyên nhân đều có cách sửa dứt điểm.
Bài viết này đội ngũ EzTech tổng hợp 7 lỗi hay gặp nhất trong công việc thật, kèm cách đọc thông báo lỗi để tự chẩn đoán những lỗi chưa có trong danh sách.
Trước khi sửa: đọc lỗi ở đúng ba nơi
Power Query báo lỗi ở ba tầng khác nhau, và mỗi tầng cần một cách xử lý riêng. Nhìn nhầm tầng là sửa sai chỗ.
- Lỗi trong ô — bảng vẫn hiện, nhưng vài ô ghi
Error. Dữ liệu vẫn chạy, chỉ những dòng đó hỏng. Click vào chữError(đừng click ô, click đúng chữ) để Power Query hiện chi tiết ở khung dưới. - Lỗi ở một bước — cả bảng biến thành màn hình vàng, thường kèm nút Go To Error. Bước gây lỗi nằm trong khung Applied Steps; click ngược lên từng bước phía trên để tìm bước cuối cùng còn chạy đúng.
- Lỗi khi Refresh — Editor không mở lỗi gì, nhưng bấm Refresh ở Excel thì hiện thông báo. Vào Data → Queries & Connections, di chuột vào query đang lỗi để xem thông báo đầy đủ.
Với tầng thứ nhất, có một mẹo cực nhanh để soi: chọn cột nghi ngờ, vào Home → Keep Rows → Keep Errors. Power Query chỉ giữ lại đúng những dòng lỗi để bạn nhìn ra quy luật — thường là vài dòng có dấu gạch ngang, chữ "N/A" hay ô ghi chú lọt vào cột số. Xem xong nhớ xóa bước Keep Errors này đi.
Bảy lỗi Power Query thường gặp và cách sửa
Lỗi 1 — DataFormat.Error: We couldn't convert to Number
Đây là lỗi phổ biến nhất. Nguyên nhân: cột được đặt kiểu Number nhưng bên trong có giá trị không phải số thuần.
Ba thủ phạm quen mặt trong dữ liệu kế toán Việt Nam:
- Dấu phân cách nghìn — giá trị
25.000.000theo chuẩn Việt Nam bị Power Query hiểu theo chuẩn Mỹ (dấu chấm là thập phân) nên không đổi được. - Ký tự lẫn trong ô — chữ "đ", "VNĐ", dấu cách không nhìn thấy, hoặc ô ghi
-thay cho số 0. - Khoảng trắng đặc biệt — dữ liệu copy từ web hoặc phần mềm hay dính ký tự non-breaking space, mắt thường không phân biệt được.
Cách sửa bền nhất: xóa bước Changed Type đang lỗi, rồi làm sạch cột trước khi đổi kiểu. Chọn cột → Transform → Format → Trim và Clean; nếu còn ký tự lạ thì Replace Values để bỏ "đ", "VNĐ". Sau đó mới đổi kiểu, và với dữ liệu số kiểu Việt Nam hãy dùng Transform → Data Type → Using Locale, chọn Data type Decimal Number, Locale Vietnamese (Vietnam). Đây mới là nút giải quyết tận gốc chuyện dấu chấm — dấu phẩy.
Còn vài dòng cá biệt lỗi vì nguồn ghi chú tay? Chọn cột → Transform → Replace Errors nhập 0 để giữ dòng, hoặc Home → Remove Rows → Remove Errors nếu chắc chắn dòng đó là rác. Cân nhắc kỹ: Remove Errors xóa cả dòng, số tổng sẽ đổi.
Lỗi 2 — Expression.Error: The column '…' of the table wasn't found
Query đang chạy tốt bỗng lỗi sau khi ai đó sửa file nguồn. Nguyên nhân gần như luôn là tên cột ở nguồn đã đổi — "Doanh thu" thành "Doanh thu thuần", hoặc chỉ thừa một dấu cách cuối.
Power Query ghi cứng tên cột vào các bước như Changed Type, Removed Columns, Renamed Columns. Nguồn đổi tên là bước đó gãy.
Cách sửa nhanh: click bước lỗi trong Applied Steps, nhìn thanh công thức phía trên, sửa tên cột cũ thành tên mới. Cách sửa bền: hạn chế phụ thuộc tên cột — thay Remove Columns bằng Remove Other Columns (chọn cột cần giữ), và đặt bước Renamed Columns ngay sau Source để mọi bước sau chỉ làm việc với tên do bạn kiểm soát.
Nếu nguồn hay đổi cột, hãy thống nhất với người xuất dữ liệu một mẫu cột cố định. Đây là lỗi mà kỷ luật dữ liệu giải quyết tốt hơn kỹ thuật.
Lỗi 3 — Cột ngày bị đảo ngày với tháng hoặc báo lỗi hàng loạt
Ngày 03/07 thành 7 tháng 3, hoặc cả cột ngày biến thành Error vì Power Query đọc theo định dạng Mỹ (tháng/ngày/năm) trong khi dữ liệu là ngày/tháng/năm.
Cách sửa: xóa bước Changed Type, chọn cột ngày → Transform → Data Type → Using Locale, Data type Date, Locale Vietnamese (Vietnam) hoặc English (United Kingdom). Trường hợp cột ngày lưu dạng chữ với đủ kiểu định dạng lẫn lộn thì phải tách chuỗi rồi ghép lại bằng #date.
Lỗi này nhiều tình huống con và hay quay lại, đội ngũ EzTech đã viết riêng một bài chi tiết: sửa lỗi ngày tháng Power Query bị đảo.
Lỗi 4 — DataSource.Error: Could not find a part of the path
Query trỏ tới file hoặc thư mục theo đường dẫn tuyệt đối. Chỉ cần đổi tên thư mục, chuyển máy, hoặc OneDrive đồng bộ sang đường dẫn khác là gãy. Người mới hay gặp nhất khi gửi file cho đồng nghiệp: máy bạn chạy, máy họ lỗi ngay.
Sửa tạm: Data → Get Data → Data Source Settings → Change Source, trỏ lại đường dẫn mới.
Sửa bền: dùng tham số đường dẫn. Trong Editor vào Home → Manage Parameters → New Parameter, đặt tên FolderPath, kiểu Text, giá trị là đường dẫn thư mục. Sau đó click bước Source, sửa công thức để dùng tham số thay cho chuỗi đường dẫn. Từ đó về sau, đổi máy chỉ cần sửa một tham số thay vì mở từng query.
Mẹo nhỏ với OneDrive: đường dẫn dạng đồng bộ trên máy (C:\Users\...\OneDrive - ...\) khác đường dẫn web. Trong một nhóm, hãy thống nhất tất cả cùng dùng bản đồng bộ về máy để cấu trúc thư mục giống nhau.
Lỗi 5 — Refresh xong nhưng số vẫn là số cũ
Không có thông báo lỗi nào, đó mới là chỗ nguy hiểm: bạn tưởng đã cập nhật và gửi báo cáo đi.
Các nguyên nhân theo thứ tự hay gặp:
- File nguồn chưa lưu. Power Query đọc bản trên ổ đĩa, không đọc thứ bạn vừa gõ. Ctrl+S file nguồn rồi Refresh lại.
- Dữ liệu mới nằm ngoài vùng nguồn. Nếu nguồn là một vùng cố định thay vì Table, dòng thêm bên dưới sẽ không được lấy. Bôi đen dữ liệu, bấm Ctrl+T để chuyển thành Table rồi trỏ query vào Table đó.
- File mới nằm ngoài bộ lọc. Query gộp thư mục thường có bước lọc theo tên file hoặc phần mở rộng. File mới đặt tên khác quy luật là bị loại âm thầm.
- Bộ nhớ đệm. Thử Data → Refresh All thay vì refresh một query, hoặc vào Editor bấm Home → Refresh Preview → Refresh All.
Thói quen nên có: thêm một bước đơn giản hiển thị số dòng hoặc ngày lớn nhất trong dữ liệu, đặt cạnh báo cáo. Refresh xong liếc một cái là biết dữ liệu có thật sự mới hay không.
Lỗi 6 — Formula.Firewall: Query references other queries…
Thông báo đầy đủ thường là "Query 'X' (step 'Y') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination." Lỗi này hay xuất hiện khi bạn gộp dữ liệu từ hai nguồn khác nhau — ví dụ một bảng trong Excel dùng để lọc một file ngoài.
Nguyên nhân là cơ chế Privacy Levels: Power Query sợ dữ liệu từ nguồn này rò sang nguồn kia nên chặn trước.
Hai hướng xử lý:
- Tắt kiểm tra quyền riêng tư (nhanh, dùng khi cả hai nguồn đều là dữ liệu nội bộ của bạn): Data → Get Data → Query Options → Current Workbook → Privacy, chọn Ignore the Privacy Levels.
- Tách lại cấu trúc query (bền hơn): mỗi nguồn một query riêng chỉ làm nhiệm vụ lấy dữ liệu thô, rồi tạo query thứ ba tham chiếu hai query đó để gộp. Không trộn thao tác lấy nguồn với thao tác biến đổi trong cùng một query.
Lỗi 7 — Sau Merge, số liệu bị nhân lên
Lỗi này không hiện chữ đỏ nào. Bạn Merge bảng bán hàng với bảng danh mục khách hàng, xong thấy doanh thu tổng cao gấp đôi, gấp ba.
Nguyên nhân: cột khóa bên bảng tra cứu bị trùng. Một mã khách hàng xuất hiện hai dòng thì mỗi dòng bán hàng khớp với hai dòng, và số nhân đôi.
Cách phát hiện sớm: ngay trong cửa sổ Merge, Power Query hiển thị dòng gợi ý kiểu "The selection matches 1.250 of 1.250 rows". Nếu bảng gốc có 1.250 dòng mà kết quả lên 1.400 thì chắc chắn có khóa trùng.
Cách sửa: mở query bảng tra cứu, chọn cột khóa → Home → Remove Rows → Remove Duplicates, và quan trọng hơn là kiểm tra vì sao trùng — thường do danh mục có bản ghi cũ chưa xóa. Cách dùng Merge đúng chuẩn, đội ngũ EzTech đã hướng dẫn từng bước trong bài Merge Queries thay VLOOKUP.
Bảng tra nhanh 7 lỗi
| Thông báo / triệu chứng | Nguyên nhân gốc | Nút bấm cần tìm |
|---|---|---|
| We couldn't convert to Number | Ô có ký tự lạ, dấu phân cách nghìn kiểu Việt | Trim / Clean rồi Data Type → Using Locale |
| The column '…' wasn't found | Nguồn đổi tên cột | Sửa tên trong thanh công thức; đổi sang Remove Other Columns |
| Ngày bị đảo hoặc lỗi hàng loạt | Đọc theo định dạng Mỹ | Data Type → Using Locale → Date, Vietnamese |
| Could not find a part of the path | Đường dẫn cứng đã đổi | Data Source Settings → Change Source; dùng Parameter |
| Refresh xong số không đổi | Chưa lưu nguồn / nguồn không phải Table | Ctrl+S file nguồn; Ctrl+T tạo Table |
| Formula.Firewall | Privacy Levels giữa hai nguồn | Query Options → Privacy; hoặc tách query nguồn riêng |
| Số nhân lên sau Merge | Khóa trùng ở bảng tra cứu | Remove Duplicates trên cột khóa |
Bốn thói quen giúp query ít lỗi hẳn
Một, đặt tên bước. Click phải một bước trong Applied Steps → Rename, đổi "Filtered Rows1" thành "Bỏ dòng tổng cộng". Ba tháng sau mở lại, bạn đọc hiểu ngay mình đã làm gì và lỗi nằm ở đâu.
Hai, tách query lấy nguồn và query xử lý. Query đầu chỉ đọc nguồn, đặt Connection Only. Query sau tham chiếu nó để biến đổi. Cách này tránh Formula.Firewall và giúp bạn đổi nguồn mà không đụng logic.
Ba, chỉ đổi kiểu dữ liệu một lần ở cuối. Power Query hay tự chèn bước Changed Type sau mỗi thao tác — đây là nguồn gốc phần lớn lỗi tên cột. Xóa bớt các bước tự sinh, để một bước đặt kiểu duy nhất trước khi Close & Load.
Bốn, chuẩn hóa từ nguồn. Đa số lỗi trong bài này sinh ra ở khâu xuất dữ liệu chứ không phải khâu xử lý. Một mẫu file thống nhất, một quy tắc đặt tên file, một vùng dữ liệu là Table — ba việc đó giảm lỗi nhiều hơn mọi thủ thuật.
Câu hỏi thường gặp
Xóa bước Changed Type có làm hỏng query không?
Không, nếu bạn đặt lại kiểu dữ liệu ở bước cuối. Changed Type chỉ khai báo kiểu, không biến đổi dữ liệu. Điều cần nhớ: cột số tiền phải là Decimal Number, cột ngày phải là Date trước khi Close & Load, nếu không Excel và Power BI sẽ hiểu chúng là chữ và không tính toán được.
Nên dùng Remove Errors hay Replace Errors?
Tùy vào việc dòng lỗi có phải dữ liệu thật hay không. Ô trống hoặc gạch ngang mang nghĩa "không phát sinh" thì Replace Errors bằng 0 để giữ dòng. Dòng rác như chú thích, dòng tổng cộng của file nguồn thì Remove Errors. Tuyệt đối đừng dùng Remove Errors cho nhanh khi chưa xem dòng lỗi là gì — bạn có thể xóa mất giao dịch thật.
Query chạy được trên máy tôi nhưng đồng nghiệp mở lại lỗi?
Gần như luôn là Lỗi 4 — đường dẫn khác nhau — hoặc do đồng nghiệp chưa được cấp quyền truy cập thư mục nguồn. Dùng tham số đường dẫn và để dữ liệu nguồn trên ổ chung là xử lý được cả hai.
Có cách nào xem toàn bộ code phía sau query không?
Có. Vào Home → Advanced Editor để xem toàn bộ code M của query. Khi lỗi khó, đọc thẳng ở đây nhanh hơn click từng bước, và bạn cũng có thể copy code này gửi cho người khác nhờ soi.
Sửa lỗi giỏi hay không cần gặp lỗi?
Biết sửa 7 lỗi trên là bạn xử lý được phần lớn tình huống thường ngày. Nhưng khác biệt thật sự nằm ở chỗ khác: người dựng query bài bản gặp lỗi ít hơn hẳn, vì họ hiểu Power Query làm gì phía sau mỗi nút bấm và biết chuẩn hóa dữ liệu từ đầu nguồn.
Bạn có thể tự đo trình độ hiện tại bằng bài trắc nghiệm Power Query miễn phí của EzTech. Nếu mới bắt đầu, hãy đọc Power Query cho kế toán rồi thực hành với bài gộp nhiều file Excel bằng Power Query.
Còn nếu bạn muốn đi đường dài — Power Query chuyên sâu trong Excel rồi dựng báo cáo tài chính, quản trị trên Power BI — khóa DATA FINANCE của EzTech được thiết kế đúng cho dân kế toán - tài chính, dạy bởi Th.S Trần Hà Tuấn Anh, cựu Head of Data tại NGS IT & CMC Global. Cần tư vấn lộ trình phù hợp, các bạn cứ liên hệ với đội ngũ EzTech nhé.