Hàm IFERROR
Trong quá trình thao tác với bảng tính, không ít lần chúng ta gặp lỗi, và cũng khó mà tránh được lỗi. Ví dụ, một công thức đơn giản thôi =A/B có thể gây lỗi #DIV/0! nếu như B bằng 0, hoặc gây lỗi #NAME? nếu A hoặc B không tồn tại, gây lỗi #REF! nếu có ô nào đó liên kết với A hoặc B bị xóa đi...
Tuy nhiên, đôi lúc chúng ta lại cần phải lợi dụng chính những cái lỗi này, ví dụ sẽ đặt ra một tình huống: nếu có lỗi thì làm gì đó... Gọi nôm na là BẪY LỖI.
Có lẽ vì vậy mà hàm này có hai chữ đầu là IF; IFERROR = nếu xảy ra lỗi (thì)...
MS Excel 2003 trở về trước có hàm ISERROR(value), với value là một biểu thức. Nếu biểu thức này gặp lỗi, ISERROR() sẽ trả về giá trị TRUE, còn nếu biểu thức không có lỗi, ISERROR() trả về giá trị FALSE.
Và chúng ta thường dùng ISERROR() kèm với IF:
=IF(ISERROR(expression), ErrorResult, expression)
Nếu như biểu thức (expression) có lỗi, công thức trên sẽ lấy giá trị ErrorResult (một ô rỗng, hoặc một thông báo lỗi, v.v..), ngược lại, sẽ lấy chính giá trị biểu thức đó.
Ví dụ: =IF(ISERROR(A/B), "", A/B)
Cái bất tiện khi phải dùng vừa IF() vửa ISERROR() là chúng ta phải nhập cái biểu thức hai lần: một lần trong hàm ISERROR() và một lần ở tham số value_is_False của IF()
Có thể cái bất tiện vừa nói trên không đáng kể, tuy nhiên cách sử dụng này làm cho công thức của chúng ta trở nên khó dùng hơn, bởi vì nếu thay cái biểu thức(expression), thì chúng ta phải thay đổi nguyên cả công thức.
Excel 2007 dường như hiểu được sự bất tiện đó, nên đã gộp hai hàm IF() và ISERROR lại thành một, đó là IFERROR()
Cú pháp: IFERROR(value, value_if_error)
_____value: Biểu thức có thể sẽ gây ra lỗi
_____value_if_error: kết quả trả về nếu value gây ra lỗi
Nếu biểu thức value không gây lỗi, IFERROR() sẽ lấy biểu thức đó, còn nếu nó có lỗi thì lấy cái biểu thức value_if_error.
Ví dụ, công thức =IF(ISERROR(A/B), "", A/B) nếu dùng IFERROR() thì sẽ là
=IFERROR(A/B, "")
Bạn thấy đấy, IFERROR() ngắn gọn và dễ hiểu hơn nhiều.