Excel to App Logo - Giải pháp chuyển đổi Excel thành web app quản lý nội bộ
FB LinkedIn Zalo
Sửa Lỗi Excel

Cách Khắc Phục Lỗi #N/A Trong Excel: VLOOKUP, XLOOKUP Và MATCH

👤 Exceltoapp.vn
|
📅 28 Thg 05, 2026 · Cập nhật: 02 Thg 08, 2026
|
⏱️ 12 min read
Khắc phục lỗi na khi dùng hàm vlookup trong excel
📬

Nhận Thêm Insight Mỗi Tuần

Gửi ngắn gọn 1 email/tuần về tối ưu vận hành cho SME.

Tóm tắt nhanh (TL;DR)

Lỗi #N/A là gì: Excel báo "không tìm thấy giá trị" — hàm tra cứu (VLOOKUP, XLOOKUP, MATCH) không khớp được giá trị cần tìm trong bảng dữ liệu.

  • Nguyên nhân số 1: Giá trị tra cứu không tồn tại trong dữ liệu nguồn — có thể do nhập sai chính tả, thiếu dữ liệu, hoặc do khoảng trắng ẩn.
  • Nguyên nhân "chết người" số 2: Quên tham số FALSE trong VLOOKUP — để TRUE/bỏ trống khiến Excel tìm khớp tương đối, vừa gây #N/A vừa có thể trả về kết quả SAI mà không báo lỗi.
  • Cách sửa nhanh: Thêm FALSE vào VLOOKUP → kiểm tra kiểu dữ liệu số vs text → dùng TRIM dọn khoảng trắng → bọc IFNA/IFERROR cho thông báo thay thế.
  • Giải pháp hiện đại: XLOOKUP trả về giá trị mặc định khi không tìm thấy (=XLOOKUP(...; "Không có")) — không cần IFERROR, ít lỗi hơn hẳn.

Lỗi #N/A trong Excel là gì?

Lỗi #N/A (viết tắt của Not Available — "không có sẵn") là thông báo Excel hiển thị khi một hàm tra cứu như VLOOKUP, XLOOKUP, HLOOKUP, LOOKUP hoặc MATCH không tìm thấy giá trị cần tìm trong vùng dữ liệu được chỉ định. Đây là lỗi phổ biến nhất khi làm việc với bảng tra cứu — và khác với #VALUE! (sai kiểu dữ liệu) hay #DIV/0! (chia cho 0), #N/A mang ý nghĩa "không có kết quả khớp" (Nguồn: Microsoft Support).

Bảng tóm tắt: 6 nguyên nhân gây lỗi #N/A và cách sửa

📊 Bảng: Tóm tắt 6 nguyên nhân gây lỗi #N/A và cách sửa

# Nguyên nhân Dấu hiệu nhận biết Cách xử lý
1 Giá trị không tồn tại trong dữ liệu nguồn Tìm mã/khách hàng không có trong bảng Kiểm tra chính tả, bổ sung dữ liệu thiếu
2 Quên FALSE / để TRUE (khớp tương đối) VLOOKUP không có tham số thứ 4, hoặc để TRUE Đổi thành =VLOOKUP(...,FALSE) — luôn khớp chính xác
3 Kiểu dữ liệu khác nhau (số vs văn bản) Ô số tìm kiếm nhưng bảng nguồn lưu text (hoặc ngược lại) Đồng nhất định dạng: chuyển cả hai cột về cùng kiểu số hoặc text
4 Khoảng trắng ẩn / ký tự đặc biệt "SP001" và "SP001 " nhìn giống nhau nhưng không khớp Dùng TRIM/CLEAN dọn dữ liệu trước khi tra cứu
5 Sai phạm vi tra cứu (table_array) Vùng chọn không chứa cột giá trị cần tìm Kiểm tra lại vùng tham chiếu, dùng $A$1:$D$100 cố định
6 MATCH sai match_type Hàm MATCH báo #N/A dù giá trị có tồn tại Đặt match_type = 0 (khớp chính xác)

Nguyên nhân 1 — Giá trị tra cứu không tồn tại trong dữ liệu nguồn

Đây là nguyên nhân phổ biến nhất: bạn tìm "Chuối" nhưng bảng dữ liệu không có hàng nào tên "Chuối" — VLOOKUP trả về #N/A vì đơn giản là không có gì để tìm (Nguồn: Microsoft Support).

Cách xử lý:

  • Kiểm tra chính tả giá trị tìm kiếm (thường gõ sai 1 ký tự)
  • Kiểm tra dữ liệu nguồn có thiếu hàng nào không
  • Nếu dữ liệu nguồn được cập nhật thường xuyên, hãy kiểm tra xem giá trị mới đã được thêm vào chưa

Nguyên nhân 2 — Quên tham số FALSE: lỗi "chết người" ít người để ý

Tham số thứ 4 của VLOOKUP (range_lookup) có hai chế độ:

  • TRUE (hoặc bỏ trống): tìm khớp tương đối — yêu cầu bảng phải được sắp xếp tăng dần
  • FALSE: tìm khớp chính xác — không cần sắp xếp

Theo mặc định, các hàm tra cứu yêu cầu bảng được sắp xếp tăng dần. Nhưng 99% trường hợp thực tế bạn cần khớp chính xác — đặc biệt khi tìm mã sản phẩm, mã khách hàng. Nếu để TRUE hoặc bỏ trống:

  • Bảng không sắp xếp → Excel "mù mờ" → trả về kết quả SAI (nguy hiểm hơn cả #N/A!) hoặc #N/A
  • Ví dụ kinh điển từ Microsoft: tìm "Chuối" trong bảng "Đào, Lê, Táo" — "Chuối" đứng trước "Đào" nên bị coi là không tồn tại → #N/A. Tệ hơn: "Lê" có thể trả về giá của "Đào" mà không báo lỗi gì (Nguồn: Microsoft Support)

Cách xử lý: Luôn viết đầy đủ:

= VLOOKUP(A2, $B$2:$C$100, 2, FALSE)

Với hàm MATCH, tương tự — đặt match_type = 0:

= MATCH(A2, $B$2:$B$100, 0)

Nguyên nhân 3 — Kiểu dữ liệu khác nhau: số vs văn bản

Giá trị bạn tìm là số (ví dụ 123456), nhưng dữ liệu nguồn lại lưu dạng văn bản (ô có dấu nháy xanh nhỏ góc trên trái) — hoặc ngược lại. Excel coi số và text là hai thứ hoàn toàn khác nhau, nên dù nhìn giống hệt, chúng không khớp (Nguồn: Microsoft Support).

Cách xử lý:

  • Chọn cột dữ liệu → nhấn Ctrl+1 → kiểm tra định dạng ô
  • Chuyển toàn bộ về cùng kiểu: hoặc tất cả là số, hoặc tất cả là văn bản
  • Dùng hàm VALUE để ép text thành số: =VALUE(A2), hoặc TEXT để ép số thành text: =TEXT(A2,"0")

Nguyên nhân 4 — Khoảng trắng ẩn và ký tự đặc biệt

"SP001" và "SP001 " (có dấu cách cuối) không giống nhau trong mắt Excel. Dữ liệu nhập từ web, phần mềm khác, hoặc do ai đó gõ tay thường kèm khoảng trắng đầu/cuối — khiến hàm tra cứu không tìm thấy dù giá trị thực sự tồn tại.

Cách xử lý: Dùng TRIM bên trong công thức tra cứu:

= VLOOKUP(TRIM(A2), $B$2:$C$100, 2, FALSE)

Hoặc dọn sạch cột dữ liệu nguồn bằng TRIM/CLEAN rồi dán giá trị (Paste Special → Values) — dữ liệu sạch vĩnh viễn.

Nguyên nhân 5 — Sai phạm vi tra cứu (table_array)

VLOOKUP chỉ tìm trong cột đầu tiên của vùng bạn chọn. Nếu bạn chọn nhầm vùng không chứa cột giá trị cần tìm, hoặc chọn thiếu, hàm sẽ báo #N/A. Khi copy công thức xuống nhiều dòng, vùng tham chiếu tương đối còn bị trôi — phải dùng $ để cố định.

Cách xử lý:

= VLOOKUP(A2, $B$2:$C$100, 2, FALSE)

Dấu $ giữ vùng $B$2:$C$100 đứng yên khi kéo công thức — tránh "vùng trôi" gây #N/A hàng loạt.

Nguyên nhân 6 — MATCH dùng sai match_type

Hàm MATCH có ba chế độ: 1 (gần nhất nhỏ hơn, cần sắp xếp tăng dần), 0 (khớp chính xác), -1 (gần nhất lớn hơn, cần sắp xếp giảm dần). Nếu để mặc định (bỏ trống = 1) mà bảng không sắp xếp, kết quả sẽ sai hoặc #N/A.

Cách xử lý: Luôn đặt 0 khi cần tìm vị trí chính xác:

= MATCH(A2, $B$2:$B$100, 0)

Cách xử lý lỗi đẹp hơn: IFNA, IFERROR và XLOOKUP

Dùng IFNA/IFERROR để thay #N/A bằng thông báo

Khi giá trị không tìm thấy là chuyện bình thường (ví dụ: khách chưa có mã trong danh sách), bạn không muốn ô hiển thị #N/A xấu xí:

= IFNA(VLOOKUP(A2, $B$2:$C$100, 2, FALSE), "Không có dữ liệu")
= IFERROR(VLOOKUP(A2, $B$2:$C$100, 2, FALSE), 0)
  • IFNA: Chỉ bắt lỗi #N/A — an toàn, không nuốt các lỗi khác. Dùng khi bạn muốn xử lý riêng trường hợp "không tìm thấy"
  • IFERROR: Bắt mọi loại lỗi — tiện nhưng có thể che giấu lỗi thật (như #VALUE!, #REF!), khiến bạn không biết công thức đang hỏng

XLOOKUP — giải pháp hiện đại không cần FALSE, không cần IFERROR

Từ Excel 365/2019, XLOOKUP thay thế VLOOKUP với nhiều ưu điểm:

  • Tìm chính xác mặc định — không cần tham số FALSE
  • Tra cứu được cả hai hướng (VLOOKUP chỉ tìm từ trái sang phải)
  • Có sẵn tham số trả về khi không tìm thấy:
= XLOOKUP(A2, $B$2:$B$100, $C$2:$C$100, "Không có")

Không tìm thấy → hiển thị "Không có" thay vì #N/A — gọn gàng, dễ đọc, ít lỗi hơn hẳn (Nguồn: Microsoft Support).

Case study: Báo cáo lương bị #N/A lan khắp 300 dòng

Bối cảnh: Công ty may mặc Z — 40 nhân viên. Kế toán dùng VLOOKUP để nối bảng chấm công với bảng lương: tìm tên nhân viên trong danh sách để kéo về lương cơ bản.

Vấn đề gặp phải:

  • Cuối tháng, cột lương hiển thị #N/A ở hơn 300 dòng — gần như toàn bộ bảng
  • Kế toán kiểm tra tên nhân viên: tên rõ ràng có trong danh sách lương
  • Cô nghi ngờ máy tính hoặc file bị lỗi — định tạo lại file từ đầu

Phân tích file gốc:

  • Công thức dùng: =VLOOKUP(C2, Bảng_lương, 2)thiếu tham số FALSE
  • Cột C (chấm công) nhập từ máy chấm công: tên có khoảng trắng ở cuối ("Nguyễn Văn An ")
  • Cột tên trong bảng lương: sạch ("Nguyễn Văn An")
  • Bảng_lương không được sắp xếp theo thứ tự tăng dần

Nguyên nhân gốc rễ: Kết hợp 2 lỗi: (1) thiếu FALSE khiến VLOOKUP chạy chế độ khớp tương đối trên bảng chưa sắp xếp — nguồn gốc chính của #N/A; (2) khoảng trắng ẩn từ máy chấm công khiến một số dòng vẫn lỗi sau khi thêm FALSE.

Kết quả sau xử lý: Sửa công thức thành =VLOOKUP(TRIM(C2), Bảng_lương, 2, FALSE) — thêm FALSE để khớp chính xác + TRIM để dọn khoảng trắng. Toàn bộ 300+ dòng hết lỗi trong 5 phút. Kế toán còn được khuyên dùng XLOOKUP cho file lương mới: =XLOOKUP(C2, Tên, Lương, "Chưa có") — không bao giờ thấy #N/A nữa.

Bài học từ case study: #N/A lan hàng loạt hiếm khi do "file hỏng" — thường do một lỗi nhỏ trong công thức (quên FALSE) hoặc dữ liệu không sạch (khoảng trắng ẩn). Sửa công thức gốc một lần, cả bảng hết lỗi. Và với bảng mới, nên dùng XLOOKUP ngay từ đầu để tránh cả lớp lỗi này. Nếu file của bạn thường xuyên xuất hiện các lỗi công thức kiểu này, đó có thể là dấu hiệu cấu trúc dữ liệu đang yếu — đọc thêm 7 Dấu hiệu Excel giết doanh nghiệp để nhận diện sớm.

Câu hỏi thường gặp

Tại sao VLOOKUP báo #N/A dù giá trị có trong bảng?

Thường do 1 trong 3 nguyên nhân: (1) quên FALSE — để TRUE/bỏ trống khiến Excel tìm khớp tương đối; (2) khoảng trắng ẩn — "SP001" và "SP001 " không khớp nhau; (3) kiểu dữ liệu khác nhau — cột số tìm kiếm nhưng bảng nguồn lưu text. Kiểm tra lần lượt 3 thứ này, 90% trường hợp ra ngay.

VLOOKUP để TRUE hay FALSE?

Đặt FALSE nếu bạn cần tìm giá trị chính xác — đúng cho hầu hết trường hợp (mã sản phẩm, mã khách hàng, tên nhân viên). Chỉ dùng TRUE khi thực sự cần tìm "gần đúng" (ví dụ: xếp loại theo bậc lương) và bảng đã sắp xếp tăng dần. Nếu không chắc, cứ FALSE.

IFNA và IFERROR khác nhau thế nào?

IFNA chỉ bắt lỗi #N/A — trả về giá trị thay thế khi không tìm thấy. IFERROR bắt mọi loại lỗi (#N/A, #VALUE!, #DIV/0!...). Dùng IFNA khi bạn chỉ muốn xử lý "không tìm thấy"; dùng IFERROR cẩn thận vì nó có thể che giấu các lỗi khác mà bạn cần biết.

XLOOKUP có thay thế được VLOOKUP không?

Có, trong Excel 365 và 2019+. XLOOKUP tìm chính xác mặc định, tra cứu được cả hai hướng, và có tham số trả về khi không tìm thấy — không cần FALSE, không cần IFERROR. VLOOKUP vẫn cần thiết cho file mở trên phiên bản Excel cũ.

Làm sao tránh #N/A khi dữ liệu được cập nhật liên tục?

Ba thói quen: (1) luôn viết đủ FALSE trong VLOOKUP hoặc dùng XLOOKUP; (2) dọn sạch dữ liệu trước khi tra cứu (TRIM/CLEAN); (3) bọc IFNA để hiển thị "Không có" thay vì #N/A — đồng thời dùng bảng dữ liệu nguồn được cập nhật tự động (Excel Table) để vùng tham chiếu không bị trôi.

#N/A khác #VALUE! như thế nào?

#N/A = "không tìm thấy giá trị" — xảy ra trong hàm tra cứu (VLOOKUP, XLOOKUP, MATCH) khi giá trị cần tìm không tồn tại trong vùng dữ liệu. #VALUE! = "sai kiểu dữ liệu" — xảy ra khi công thức tính toán gặp văn bản, khoảng trắng hoặc cú pháp sai. Sửa #N/A là kiểm tra dữ liệu tra cứu; sửa #VALUE! là dọn dữ liệu và công thức.

Tóm lại

Lỗi #N/A trong Excel chỉ có một ý nghĩa: hàm tra cứu không tìm thấy giá trị. Nhưng "không tìm thấy" có thể do 6 nguyên nhân: dữ liệu không tồn tại, quên FALSE, sai kiểu dữ liệu, khoảng trắng ẩn, sai phạm vi, hoặc MATCH sai match_type. Sửa theo thứ tự: thêm FALSE → kiểm tra số vs text → TRIM dọn khoảng trắng → kiểm tra vùng tham chiếu → bọc IFNA. Và nếu file của bạn dùng Excel 365, chuyển sang XLOOKUP ngay — một công thức thay cho cả đống thủ thuật phòng lỗi.

📥 File Excel của bạn đang ngập #N/A và các lỗi công thức khác? Liên hệ Exceltoapp.vn để được hỗ trợ dọn dữ liệu và chuẩn hóa công thức — hoặc đọc bài Chi phí thực sự của việc dùng Excel quản lý để biết mỗi lần dò lỗi đang tốn bao nhiêu tiền của shop.

Chi phí thực sự dùng Excel quản lý →

Tác giả: Exceltoapp.vn

💬 Bài viết này có hữu ích với bạn không?

Ý kiến của bạn giúp chúng tôi cải thiện chất lượng nội dung tốt hơn.

BẢN TIN CHUYÊN SÂU

NHẬN INSIGHT VẬN HÀNH CHO DOANH NGHIỆP

Case study thực tế, giải pháp gỡ rối file Excel và hướng dẫn chuyển đổi Web App mỗi tuần — hoàn toàn miễn phí.

✅ Không spam · Hủy đăng ký bất cứ lúc nào

EA

Về ban biên tập ExcelToApp

Nội dung được biên soạn và chia sẻ bởi đội ngũ phát triển ExcelToApp. Chúng tôi hy vọng những giải pháp và cẩm nang này sẽ giúp bạn tối ưu hóa bảng tính, khắc phục nhanh các sự cố dữ liệu phát sinh để làm việc hiệu quả và nhẹ nhàng hơn mỗi ngày.

Bài viết cùng danh mục

Sửa lỗi ### trong Excel: 5 nguyên nhân và cách khắc phục nhanh
🛠️ Sửa Lỗi Excel

Sửa lỗi ### trong Excel: 5 nguyên nhân và cách khắc phục nhanh

TL;DR: Lỗi trong Excel là gì? Khi một ô hiển thị chuỗi dấu thăng thay vì số, ngày tháng hay nội dung — nghĩa là Excel không đủ chỗ để hiển thị giá trị tron

16 Thg 08, 2026
9 phút
Liên hệ qua Zalo
Cần tư vấn gì không ạ? 😊
💬

EXA Assistant

Trực tuyến & Sẵn sàng gỡ rối

Thông Tin Nhận Diện Trước Khi Chat

Vui lòng nhập Họ tên và SĐT/Email để tư vấn viên và hệ thống lưu vết tư vấn nhé.

🤖
Dạ, em chào anh/chị! Em là trợ lý EXA của ExceltoApp.

Em có thể hỗ trợ giải đáp các thắc mắc về bảng giá, dịch vụ, của công ty

Anh/chị cần em hỗ trợ gì hôm nay ạ?