Excel có cả ISERROR lẫn ISERR để kiểm tra lỗi, và trên bề mặt chúng giống hệt nhau. Cả hai đều trả về TRUE khi phát hiện lỗi, FALSE khi không có lỗi. Nhưng có một điểm khác biệt quan trọng: ISERR không coi #N/A là lỗi. Sự khác biệt nhỏ này tạo ra ảnh hưởng lớn trong một số tình huống cụ thể mà bạn sẽ gặp khi làm việc với VLOOKUP và biểu đồ.

Sự khác biệt duy nhất giữa ISERR và ISERROR
Cả hai hàm đều kiểm tra 7 loại lỗi phổ biến trong Excel: #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #NULL!, và #N/A. Điểm khác biệt nằm ở cách xử lý #N/A.
ISERROR bắt tất cả:
- =ISERROR(#N/A) → TRUE
- =ISERROR(#DIV/0!) → TRUE
- =ISERROR(#VALUE!) → TRUE
ISERR bỏ qua #N/A:
- =ISERR(#N/A) → FALSE
- =ISERR(#DIV/0!) → TRUE
- =ISERR(#VALUE!) → TRUE
Cú pháp của cả hai hàm đều đơn giản: =ISERR(value) và =ISERROR(value), trong đó value là giá trị hoặc công thức cần kiểm tra. Bạn có thể tham chiếu trực tiếp đến một ô, nhập một phép tính, hoặc lồng một hàm khác vào bên trong.
Tại sao #N/A lại đặc biệt
Lỗi #N/A không thực sự là lỗi trong nhiều trường hợp. Khi VLOOKUP trả về #N/A, điều đó có nghĩa là không tìm thấy giá trị tra cứu trong bảng dữ liệu. Đây là thông tin hữu ích chứ không phải lỗi tính toán.
Các lỗi khác như #DIV/0! hoặc #VALUE! luôn chỉ ra vấn đề thực sự với công thức. Chia cho số không là phép toán không hợp lệ. Nhập sai kiểu dữ liệu tạo ra lỗi #VALUE!. Những lỗi này cần được sửa.
Nhưng #N/A từ VLOOKUP có thể là kết quả mong đợi. Ví dụ, bạn tra cứu danh sách khách hàng đã thanh toán. Những khách hàng chưa thanh toán sẽ không có trong danh sách và trả về #N/A. Đây là thông tin bình thường, không phải lỗi cần khắc phục.
Excel cung cấp ISERR để bạn có thể phân biệt giữa “không tìm thấy dữ liệu” và “công thức bị sai”.
Khi nào dùng ISERR với VLOOKUP
Hàm VLOOKUP thường kết hợp với IF và ISERROR để ẩn lỗi #N/A. Công thức phổ biến nhất là:
=IF(ISERROR(VLOOKUP(A2,$D$2:$E$100,2,FALSE)),"Không tìm thấy",VLOOKUP(A2,$D$2:$E$100,2,FALSE))
Công thức này bắt tất cả lỗi kể cả #N/A và hiển thị “Không tìm thấy”. Nhưng nếu công thức VLOOKUP của bạn có vấn đề thực sự, ví dụ như tham chiếu sai cột hoặc phạm vi lỗi, bạn sẽ không biết vì tất cả đều bị thay bằng “Không tìm thấy”.
Sử dụng ISERR thay vì ISERROR giải quyết vấn đề này:
=IF(ISERR(VLOOKUP(A2,$D$2:$E$100,2,FALSE)),"Lỗi công thức",VLOOKUP(A2,$D$2:$E$100,2,FALSE))
Với công thức này:
- Nếu không tìm thấy giá trị tra cứu, #N/A vẫn hiển thị bình thường
- Nếu có lỗi thực sự như #REF! hoặc #VALUE!, hiển thị “Lỗi công thức”
Bạn vẫn nhìn thấy #N/A để biết giá trị nào không có trong bảng tra cứu, nhưng các lỗi nghiêm trọng được bắt và cảnh báo ngay lập tức.
ISERR giúp biểu đồ hoạt động đúng
Biểu đồ trong Excel tự động bỏ qua ô chứa #N/A khi vẽ đường. Đây là tính năng hữu ích cho dữ liệu chưa có hoặc dữ liệu mùa vụ.
Giả sử bạn có bảng doanh thu theo tháng cho năm 2025. Hiện tại mới tháng 10, các tháng 11 và 12 chưa có dữ liệu. Nếu để trống hoặc điền số 0, biểu đồ sẽ vẽ sai. Nếu dùng công thức trả về #N/A cho các tháng chưa đến, biểu đồ sẽ dừng ở tháng 10.
Ví dụ công thức:
=IF(MONTH(A2)>MONTH(TODAY()),NA(),VLOOKUP(A2,DanhSachDoanhThu,2,FALSE))
Nếu bạn bọc công thức này trong ISERROR và trả về 0 hoặc “”, biểu đồ sẽ vẽ các điểm không chính xác cho các tháng chưa có dữ liệu. Nhưng nếu bạn dùng ISERR để bắt các lỗi khác nhưng cho phép #N/A hiển thị, biểu đồ vẫn hoạt động đúng.
Công thức với ISERR:
=IF(ISERR(IF(MONTH(A2)>MONTH(TODAY()),NA(),VLOOKUP(A2,DanhSachDoanhThu,2,FALSE))),"Lỗi dữ liệu",IF(MONTH(A2)>MONTH(TODAY()),NA(),VLOOKUP(A2,DanhSachDoanhThu,2,FALSE)))
Biểu đồ nhận được #N/A cho các tháng tương lai và tự động không vẽ các điểm đó. Nhưng nếu VLOOKUP gặp lỗi thực sự, bạn sẽ thấy “Lỗi dữ liệu” thay vì biểu đồ sai.
Đếm lỗi không bao gồm #N/A
Khi kiểm tra chất lượng dữ liệu trong bảng tính lớn, bạn thường cần đếm số lượng ô bị lỗi. Hàm SUMPRODUCT kết hợp với ISERR cho kết quả chính xác hơn ISERROR.
=SUMPRODUCT(--ISERR(A2:A100))
Công thức này đếm các lỗi nghiêm trọng trong phạm vi A2:A100 nhưng bỏ qua #N/A. Hai dấu trừ (–) chuyển đổi TRUE thành 1 và FALSE thành 0 để SUMPRODUCT có thể tính tổng.
So sánh với công thức dùng ISERROR:
=SUMPRODUCT(--ISERROR(A2:A100))
Nếu bảng dữ liệu của bạn có 100 dòng, trong đó 20 dòng có #N/A vì sản phẩm chưa có giá và 3 dòng có lỗi #REF! vì công thức tham chiếu sai:
- ISERROR đếm được 23 lỗi (bao gồm cả #N/A)
- ISERR chỉ đếm 3 lỗi thực sự
Kết quả từ ISERR giúp bạn tập trung vào những lỗi cần sửa ngay thay vì bị phân tâm bởi các giá trị #N/A hợp lệ.
Khi nào dùng ISERROR thay vì ISERR
Trong hầu hết trường hợp, ISERROR vẫn là lựa chọn an toàn hơn vì nó bắt tất cả lỗi. Dùng ISERROR khi:
Xử lý lỗi cho người dùng cuối: Nếu bạn tạo bảng tính cho người khác sử dụng và muốn ẩn tất cả lỗi, dùng ISERROR. Người dùng không cần phân biệt giữa #N/A và các lỗi khác.
Tính toán không cho phép lỗi: Khi công thức tiếp theo phụ thuộc vào kết quả và không thể chấp nhận bất kỳ lỗi nào, dùng ISERROR để đảm bảo luôn có giá trị hợp lệ.
Thay thế IFERROR cũ: Trước Excel 2007, ISERROR kết hợp với IF là cách duy nhất để xử lý lỗi. Nếu làm việc với file cũ hoặc cần tương thích với Excel 2003, ISERROR vẫn cần thiết.
Ngược lại, dùng ISERR khi:
Debugging và kiểm tra dữ liệu: Trong quá trình phát triển bảng tính, bạn muốn thấy #N/A để biết giá trị nào không khớp nhưng vẫn bắt các lỗi công thức.
Biểu đồ với dữ liệu thiếu: Cho phép #N/A hiển thị để biểu đồ tự động bỏ qua các điểm dữ liệu chưa có.
Phân tích chi tiết: Khi cần phân biệt giữa “không tìm thấy dữ liệu” và “lỗi công thức” để có hành động khác nhau.
Kết hợp ISERR với IF để xử lý linh hoạt
Công thức IF kết hợp ISERR cho phép bạn xử lý các lỗi thực sự trong khi vẫn giữ #N/A:
=IF(ISERR(A2/B2),"Lỗi phép tính",A2/B2)
Nếu B2 bằng 0, công thức hiển thị “Lỗi phép tính” thay vì #DIV/0!. Nhưng nếu A2 hoặc B2 chứa #N/A từ công thức tra cứu, #N/A vẫn được giữ nguyên để bạn biết dữ liệu gốc chưa có.
Bạn cũng có thể lồng nhiều điều kiện:
=IF(ISERR(VLOOKUP(A2,$D$2:$E$100,2,FALSE)),"Kiểm tra công thức",IF(ISNA(VLOOKUP(A2,$D$2:$E$100,2,FALSE)),"Không có trong danh sách",VLOOKUP(A2,$D$2:$E$100,2,FALSE)))
Công thức này xử lý ba trường hợp:
- Lỗi thực sự (không phải #N/A) → “Kiểm tra công thức”
- Không tìm thấy giá trị (#N/A) → “Không có trong danh sách”
- Tìm thấy giá trị → Hiển thị kết quả
Lựa chọn đúng hàm cho tình huống của bạn
ISERR tồn tại vì một lý do cụ thể: cho phép bạn phân biệt giữa dữ liệu thiếu và lỗi công thức. Nếu công việc của bạn liên quan đến VLOOKUP với dữ liệu không đầy đủ, biểu đồ với dữ liệu theo mùa, hoặc kiểm tra chất lượng dữ liệu, ISERR là công cụ chính xác hơn ISERROR.
Cả hai hàm đều có sẵn từ Excel 2000 trở đi và hoạt động trên mọi phiên bản hiện đại bao gồm Excel 365. Trong Excel 2007 trở lên, bạn có thêm lựa chọn IFERROR cho cú pháp ngắn gọn hơn, nhưng IFERROR không cho phép phân biệt #N/A như ISERR.
Hãy thử ISERR trong lần tới khi bạn làm việc với VLOOKUP hoặc biểu đồ. Sự khác biệt nhỏ trong cách xử lý #N/A có thể tạo ra sự khác biệt lớn trong độ chính xác và khả năng gỡ lỗi của bảng tính.
