Mục lục
Hướng dẫn xem xét các ứng dụng thực tế của hàm ISERROR trong Excel và cho biết cách kiểm tra các công thức khác nhau để tìm lỗi.
Khi bạn viết một công thức mà Excel không hiểu hoặc không thể tính toán, nó sẽ khiến bạn chú ý đến vấn đề bằng cách hiển thị thông báo lỗi. Hàm ISERROR có thể giúp bạn phát hiện lỗi và cung cấp giải pháp thay thế khi phát hiện lỗi.
Hàm ISERROR trong Excel
Hàm ISERROR trong Excel phát hiện tất cả các loại lỗi, bao gồm #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE!, và #SPILL!. Kết quả là một giá trị Boolean: TRUE nếu phát hiện lỗi, FALSE nếu không.
Hàm này có sẵn trong tất cả các phiên bản Excel 2000 đến 2021 và Excel 365.
Cú pháp của ISERROR hàm đơn giản như sau:
ISERROR(value)Trong đó value là giá trị ô hoặc công thức cần kiểm tra lỗi.
Công thức ISERROR trong Excel
Để tạo công thức ISERROR ở dạng đơn giản nhất, hãy cung cấp tham chiếu đến ô mà bạn muốn kiểm tra lỗi. Ví dụ:
=ISERROR(A2)
Trong trường hợp tìm thấy bất kỳ lỗi nào, bạn sẽ nhận được giá trị TRUE. Nếu không có lỗi trong ô được kiểm tra, bạn sẽ nhận được kết quả SAI:
Công thức IF ISERROR trong Excel
Để trả về một thông báo tùy chỉnh hoặc thực hiện một phép tính khác khi xảy ra lỗi, hãy sử dụng ISERROR cùng với hàm IF. Công thức chung như sau:
IF(ISERROR( formula(…), text_or_calculation_if_error, formula())Được dịch sang ngôn ngữ của con người, thông báo cho biết: nếu công thức chính cho kết quả nếu xảy ra lỗi, hãy hiển thị văn bản đã chỉ định hoặc chạy một phép tính khác, nếu không sẽ trả về kết quả bình thường của công thức.
Trong hình ảnh bên dưới, việc chia tổng cho số lượng sẽ tạo ra một số lỗi trong Giá cột:
Để thay thế tất cả các mã lỗi khác nhau bằng văn bản tùy chỉnh, bạn có thể sử dụng công thức IF ISERROR sau:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
Trong Excel 2007 và các phiên bản mới hơn, bạn có thể đạt được kết quả tương tự với sự trợ giúp của hàm IFERROR có sẵn:
=IFERROR(A2/B2, "Unknown")
Nó phải là lưu ý rằng công thức IFERROR chạy nhanh hơn một chút vì nó chỉ thực hiện phép tính A2/B2 một lần. Trong khi đó, hàm IF ISERROR tính toán hai lần - lần đầu tiên để xem liệu nó có tạo ra lỗi hay không và sau đó thực hiện lại nếu phép thử là SAI.
Công thức IF ISERROR VLOOKUP
Việc sử dụng ISERROR với VLOOKUP trên thực tế là một trường hợp cụ thể của hàm IF IS Công thức ERROR đã thảo luận ở trên. Khi hàm VLOOKUP không thể tìm thấy giá trị tra cứu hoặc không thành công vì bất kỳ lý do nào khác, bạn sẽ hiển thị thông báo văn bản tùy chỉnh bằng cách sử dụng cú pháp sau:
IF(ISERROR(VLOOKUP(…)), " custom_text", VLOOKUP(…))Đối với ví dụ này, hãy kéo thời gian từ bảng tra cứu (D3:E10) sang bảng chính (A3:B15). Nếu giá trị tra cứu (tên của người tham gia) không tồn tại trongbảng tra cứu, chúng tôi sẽ trả về "Không đủ điều kiện".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Mẹo. Nếu bạn chỉ muốn hiển thị văn bản tùy chỉnh khi không tìm thấy giá trị tra cứu (lỗi #N/A) bỏ qua các lỗi khác, thì hãy sử dụng công thức IFNA VLOOKUP trong Excel 2013 trở lên hoặc IF ISNA VLOOKUP trong phiên bản cũ hơn các phiên bản.
Công thức IF ISERROR INDEX MATCH
Khi thực hiện tra cứu với sự trợ giúp của tổ hợp INDEX MATCH (hoặc công thức INDEX XMATCH trong Excel 365), bạn có thể bẫy và xử lý mọi lỗi có thể xảy ra bằng cách sử dụng kỹ thuật tương tự - hàm ISERROR kiểm tra lỗi và IF hiển thị văn bản đã chỉ định khi có bất kỳ lỗi nào xảy ra.
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))), " custom_text ", INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))Giả sử bảng tra cứu có thời gian trong cột đầu tiên. Vì VLOOKUP không thể nhìn sang bên trái nên chúng tôi sử dụng công thức INDEX MATCH để lấy thời gian từ cột D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Sau đó, bạn lồng nó vào công thức chung nêu trên để thay thế các lỗi đã bắt được bằng bất kỳ văn bản nào bạn muốn:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Lưu ý. Cũng giống như công thức IF ISERROR VLOOKUP, sẽ hợp lý hơn nếu chỉ bẫy lỗi #N/A và không ngụy trang các vấn đề tiềm ẩn bằng chính công thức đó. Đối với điều này, hãy bọc công thức INDEX MATH của bạn trong IFNA trong Excel 2013 trở lên hoặc IF ISNA trong các phiên bản cũ hơn.
NẾUCông thức ISERROR Có/Không
Trong tất cả các ví dụ trước, IF ISERROR trả về kết quả của công thức chính nếu đó không phải là lỗi. Tuy nhiên, nó cũng có thể hoạt động theo một cách khác - trả về nội dung nào đó nếu có lỗi và nội dung khác nếu không có lỗi.
IF(ISERROR( formula (…)), " text_if_error " , " text_if_no_error ")Trong tập dữ liệu mẫu của chúng tôi, giả sử bạn không quan tâm đến thời gian chính xác, bạn chỉ muốn biết những người tham gia từ nhóm A đủ điều kiện và những người không đủ điều kiện. Để thực hiện việc này, hãy sử dụng hàm MATCH để so sánh tên trong cột A với danh sách những người tham gia đủ điều kiện trong cột D, sau đó cung cấp kết quả cho ISERROR. Nếu tên không có trong cột D (MATCH trả về lỗi), hãy dùng hàm IF để hiển thị "Không" hoặc "Không đủ tiêu chuẩn". Nếu tên xuất hiện trong cột D (không có lỗi), hãy trả về "Có" hoặc "Đủ điều kiện".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
Cách đếm số lỗi
Để biết số lượng lỗi trong một cột nhất định, bạn cần kiểm tra một dải chứ không chỉ một ô. Đối với điều này, hãy "nạp" phạm vi mục tiêu vào ISERROR và ép buộc các giá trị Boolean được trả về thành 1 và 0 bằng cách sử dụng toán tử một ngôi kép (--). Hàm SUM hoặc SUMPRODUCT có thể cộng các số và đưa ra kết quả cuối cùng.
Ví dụ:
=SUM(--ISERROR(C2:C10))
Xin lưu ý, hàm này chỉ hoạt động như một công thức thông thường trong Excel 365 và Excel 2021, hỗ trợ mảng động. Trong Excel 2019 trở về trước, bạncần nhấn Ctrl + Shift + Enter để tạo công thức mảng (đừng gõ thủ công dấu ngoặc nhọn, sẽ không hoạt động!):
{=SUM(--ISERROR(C2:C10))}
Ngoài ra, bạn có thể sử dụng TÓM TẮT hàm xử lý các mảng nguyên bản, do đó, công thức có thể được hoàn thành bằng phím Enter thông thường trong tất cả các phiên bản:
=SUMPRODUCT(--ISERROR(C2:C10))
Sự khác biệt giữa ISERROR và IFERROR trong Excel
Cả hai hàm ISERROR và IFERROR đều được sử dụng để bẫy và xử lý lỗi trong Excel. Sự khác biệt như sau:
- Ở dạng thuần túy, ISERROR chỉ kiểm tra xem giá trị có phải là lỗi hay không. Hàm này có sẵn trong tất cả các phiên bản Excel.
- Hàm IFERROR được thiết kế để chặn hoặc ngụy trang lỗi - khi tìm thấy lỗi, hàm này sẽ trả về một giá trị khác mà bạn chỉ định. Nó có sẵn trong Excel 2007 trở lên.
Thoạt nhìn, IFERROR giống như một cách viết tắt thay thế cho công thức IF ISERROR. Tuy nhiên, khi xem xét kỹ hơn, bạn có thể nhận thấy sự khác biệt:
- IFERROR chỉ cho phép bạn chỉ định value_if_error . Nếu không có lỗi, nó luôn trả về kết quả của giá trị/công thức đã kiểm tra.
- IF ISERROR mang đến sự linh hoạt hơn và cho phép bạn xử lý cả hai tình huống - điều gì sẽ xảy ra nếu có lỗi và nếu không có lỗi thì sao.
Để minh họa rõ hơn vấn đề này, hãy xem xét các công thức sau:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
Hai công thức này tương đương nhau - cả hai đều kiểm tra giá trị dựa trên công thức trong A1 và trở lại"Lỗi phép tính" nếu đó là lỗi, nếu không - hãy trả về giá trị.
Nhưng nếu bạn muốn thực hiện phép tính nào đó nếu giá trị trong A1 không phải là lỗi thì sao? Hàm IFERROR không thể làm điều đó. Trong trường hợp IF ISERROR, chỉ cần nhập phép tính mong muốn vào đối số cuối cùng. Ví dụ:
=IF(ISERROR(A1), "Calculation error", A1*2)
Như bạn thấy, biến thể dài hơn này của công thức IFERROR, thường bị coi là lỗi thời, vẫn có thể hữu ích :)
Các bản tải xuống có sẵn
Ví dụ về công thức ISERROR (tệp .xlsx)