Lỗi thông báo N/A xuất hiện khắp nơi trong file Excel mỗi khi hàm VLOOKUP không tìm thấy giá trị phù hợp. Bảng giá sản phẩm hiển thị N/A thay vì số tiền, báo cáo học bổng đầy ký tự lỗi, sheet tính lương có cả chục ô báo lỗi đỏ. Các file này trông không chuyên nghiệp và khó theo dõi.
Vấn đề trở nên tệ hơn khi gửi báo cáo cho sếp hoặc khách hàng. Họ không hiểu N/A nghĩa là gì, tưởng dữ liệu bị lỗi hoặc file chưa hoàn thành. Tôi từng phải giải thích 15 phút về ý nghĩa của lỗi này cho kế toán trưởng. Mỗi lần sửa file phải tìm từng ô lỗi và nhập thông báo thủ công mất 30 phút. Hàm ISNA giải quyết vấn đề này tự động.

Hàm ISNA kiểm tra sự tồn tại của lỗi N/A
Hàm ISNA trong Excel kiểm tra xem một ô hoặc công thức có chứa lỗi N/A hay không. Lỗi N/A xuất hiện khi các hàm tra cứu như VLOOKUP, HLOOKUP, hoặc MATCH không tìm thấy giá trị cần tìm. ISNA trả về TRUE nếu phát hiện lỗi N/A, trả về FALSE nếu không có lỗi.
Cú pháp cơ bản:
=ISNA(giá_trị)
Tham số giá_trị có thể là một ô cụ thể, một công thức, hoặc kết quả của hàm khác. Ví dụ đơn giản nhất:
=ISNA(A1)
Công thức này kiểm tra ô A1. Nếu A1 chứa lỗi N/A thì trả về TRUE, nếu A1 chứa số hoặc chữ hoặc bất kỳ giá trị nào khác thì trả về FALSE.
Hàm ISNA hiếm khi đứng một mình vì kết quả TRUE hoặc FALSE không hữu ích lắm. Thay vào đó, kết hợp ISNA với hàm IF để tạo thông báo tùy chỉnh hoặc giá trị thay thế.
Kết hợp ISNA với IF để thay thế lỗi N/A
Cách sử dụng phổ biến nhất là lồng hàm ISNA vào trong hàm IF. Cấu trúc cơ bản:
=IF(ISNA(công_thức_có_thể_lỗi), "Thông báo thay thế", công_thức_có_thể_lỗi)
Ví dụ thực tế với VLOOKUP:
Giả sử bạn có bảng giá sản phẩm từ ô G3 đến H5 với cột đầu là mã hàng, cột hai là đơn giá. Bạn muốn tra cứu giá dựa vào mã hàng ở cột B:
=VLOOKUP(B2,$G$3:$H$5,2,0)
Công thức này hoạt động tốt khi tìm thấy mã hàng. Nhưng nếu mã hàng không tồn tại trong bảng giá, Excel hiển thị N/A. Thêm ISNA và IF để xử lý:
=IF(ISNA(VLOOKUP(B2,$G$3:$H$5,2,0)),"Không có trong bảng giá",VLOOKUP(B2,$G$3:$H$5,2,0))
Cách hoạt động từng bước:
- ISNA kiểm tra kết quả của VLOOKUP
- Nếu VLOOKUP trả về N/A, ISNA trả về TRUE
- IF nhận TRUE nên hiển thị “Không có trong bảng giá”
- Nếu VLOOKUP tìm thấy giá trị, ISNA trả về FALSE
- IF nhận FALSE nên hiển thị kết quả thực tế của VLOOKUP
Thông báo có thể tùy chỉnh theo nhu cầu: “Chưa cập nhật giá”, “Liên hệ phòng kinh doanh”, “Sản phẩm ngừng bán”, hoặc đơn giản là số 0.
Ứng dụng trong bảng tính học bổng
Tôi sử dụng ISNA để tạo bảng tính học bổng cho trường học. File có danh sách 200 học sinh với cột xếp loại. Bảng tra cứu chỉ có hai hạng Giỏi và Khá với mức học bổng tương ứng.
Công thức VLOOKUP đơn thuần:
=VLOOKUP(G4,$B$14:$C$15,2,0)
Công thức này tra cứu xếp loại từ ô G4 trong bảng học bổng từ B14 đến C15, lấy giá trị cột thứ 2. Kết quả đúng cho Giỏi và Khá, nhưng các hạng Trung bình, Yếu đều hiển thị N/A vì không có trong bảng tra cứu.
Thêm ISNA để xử lý:
=IF(ISNA(VLOOKUP(G4,$B$14:$C$15,2,0)),"Không xét",VLOOKUP(G4,$B$14:$C$15,2,0))
Bây giờ các học sinh xếp loại Trung bình hoặc Yếu hiển thị “Không xét” thay vì N/A. File trông chuyên nghiệp hơn, dễ đọc hơn, và không cần giải thích ý nghĩa của lỗi.
Thời gian xử lý 200 dòng giảm từ 45 phút sửa thủ công xuống 2 phút copy công thức. Không còn phải lọc từng ô lỗi để nhập text.
Rút gọn công thức với hàm IFNA
Công thức IF kết hợp ISNA khá dài và phải gõ VLOOKUP hai lần. Excel 2013 trở đi có hàm IFNA giúp viết ngắn gọn hơn:
=IFNA(VLOOKUP(B2,$G$3:$H$5,2,0),"Không có trong bảng giá")
So sánh độ dài:
- Với IF và ISNA: 73 ký tự
- Với IFNA: 48 ký tự
IFNA làm chính xác công việc giống IF kết hợp ISNA: kiểm tra lỗi N/A và thay thế bằng giá trị bạn chọn. Công thức ngắn hơn, dễ đọc hơn, ít lỗi gõ hơn.
Cú pháp IFNA:
=IFNA(công_thức, giá_trị_thay_thế)
Hạn chế duy nhất là IFNA chỉ hoạt động từ Excel 2013, Excel 2016, Excel 2019, và Microsoft 365. Nếu làm việc với file cần mở trên Excel 2010 hoặc cũ hơn, phải dùng IF kết hợp ISNA.
Thay lỗi bằng số 0 cho tính toán
Nhiều trường hợp cần thay lỗi N/A bằng số 0 thay vì text. Đặc biệt khi các ô tiếp theo cần tính toán dựa trên kết quả tra cứu.
Ví dụ tính tổng doanh thu:
Bạn tra cứu giá sản phẩm, sau đó nhân với số lượng để tính thành tiền. Nếu tra cứu trả về N/A, phép nhân cũng báo lỗi. Toàn bộ cột thành tiền đầy N/A.
=IF(ISNA(VLOOKUP(B2,$G$3:$H$5,2,0)),0,VLOOKUP(B2,$G$3:$H$5,2,0))*D2
Hoặc với IFNA:
=IFNA(VLOOKUP(B2,$G$3:$H$5,2,0),0)*D2
Cách này cho phép hàm SUM hoặc AVERAGE ở cuối bảng hoạt động bình thường. Các sản phẩm không có giá được tính là 0 thành tiền, không làm hỏng tổng cộng.
Kết hợp ISNA với INDEX MATCH
VLOOKUP có giới hạn: chỉ tra cứu từ trái sang phải. INDEX kết hợp MATCH mạnh hơn vì tra cứu được mọi hướng. ISNA hoạt động tốt với INDEX MATCH:
=IF(ISNA(INDEX(A2:A10,MATCH(F1,$B$2:$B$10,0))),"Không tìm thấy",INDEX(A2:A10,MATCH(F1,$B$2:$B$10,0)))
Hoặc dùng IFNA cho ngắn gọn:
=IFNA(INDEX(A2:A10,MATCH(F1,$B$2:$B$10,0)),"Không tìm thấy")
INDEX MATCH linh hoạt hơn VLOOKUP nhưng cũng trả về N/A khi không tìm thấy giá trị. ISNA xử lý lỗi này giống hệt cách xử lý với VLOOKUP.
Phân biệt ISNA và ISERROR
Excel có hàm ISERROR kiểm tra tất cả các loại lỗi, không chỉ N/A. Các lỗi khác bao gồm:
- DIV/0 khi chia cho số 0
- REF khi công thức tham chiếu ô đã xóa
- VALUE khi kiểu dữ liệu không đúng
- NUM khi số không hợp lệ
Sự khác biệt:
- ISNA chỉ bắt lỗi N/A, bỏ qua các lỗi khác
- ISERROR bắt tất cả lỗi
Chọn ISNA khi bạn chỉ muốn xử lý trường hợp tra cứu không tìm thấy. Giữ nguyên các lỗi khác để dễ debug. Nếu ô hiển thị DIV/0 hoặc VALUE, bạn biết có vấn đề thực sự cần sửa, không phải đơn giản là dữ liệu không tồn tại.
Chọn ISERROR khi muốn ẩn mọi lỗi. Cách này có rủi ro vì bạn có thể bỏ qua lỗi công thức thực sự.
Kiểm tra nhiều ô cùng lúc
Bạn có thể dùng ISNA để kiểm tra nhiều ô và đếm số lỗi:
=COUNTIF(D2:D20,ISNA(D2:D20))
Hoặc tạo cột phụ với công thức ISNA để đánh dấu các dòng có lỗi, sau đó lọc hoặc tô màu điều kiện.
Ví dụ cột kiểm tra: Trong cột phụ E2, nhập:
=ISNA(D2)
Copy xuống toàn bộ dòng. Cột E hiển thị TRUE cho các dòng lỗi, FALSE cho các dòng bình thường. Dùng bộ lọc để hiển thị chỉ các dòng TRUE, xem xét và sửa dữ liệu nguồn.
Cách này hữu ích khi làm việc với file lớn hàng nghìn dòng. Thay vì cuộn tìm ký tự N/A màu xanh dương, bạn lọc ngay các dòng cần xử lý.
Lưu ý khi sử dụng hàm ISNA
Phiên bản Excel: ISNA hoạt động trên mọi phiên bản Excel từ 2007 trở đi. IFNA chỉ có từ Excel 2013 trở đi.
Không phân biệt chữ hoa chữ thường: Bạn có thể gõ ISNA hoặc isna, Excel hiểu giống nhau.
Chỉ một tham số: ISNA chỉ nhận một tham số duy nhất là giá trị cần kiểm tra.
Tốc độ tính toán: Công thức IF ISNA VLOOKUP chạy VLOOKUP hai lần nếu không có lỗi. Với file lớn hàng nghìn dòng, điều này làm chậm tính toán. IFNA chỉ chạy công thức một lần nên nhanh hơn.
Khóa vùng tham chiếu: Nhớ thêm ký hiệu đô la khi copy công thức: $G$3:$H$5 thay vì G3:H5. Không khóa sẽ làm vùng tra cứu bị dịch chuyển theo hàng, gây lỗi sai.
Kết quả sau khi áp dụng
File báo cáo của tôi giảm thời gian kiểm tra từ 30 phút xuống còn 2 phút. Không còn phải giải thích ý nghĩa lỗi N/A cho người nhận file. Các bảng tính trông chuyên nghiệp với thông báo rõ ràng bằng tiếng Việt.
ISNA hoạt động tốt nhất khi kết hợp IF cho Excel mọi phiên bản. Dùng IFNA nếu file chỉ mở trên Excel 2013 trở lên để công thức ngắn gọn hơn. Thay lỗi N/A bằng text hoặc số 0 tùy theo nhu cầu tính toán của file. Hàm này không loại bỏ nguyên nhân lỗi nhưng giúp hiển thị kết quả dễ hiểu cho người đọc.
