Các lập trình viên giỏi, khi lập trình họ sẽ phải đánh giá những khả năng có thể xảy ra, các lỗi thường gặp phải và đi xử lý nó triệt để thì mới có được một sản phẩm hoàn chỉnh, một phần mềm thân thiện với người dùng. Đối với Excel cũng vậy khi khi thiết lập các công thức tính toán thì đôi khi cũng xảy ra các trường hợp các hàm sử dụng không hoạt động do kết quả trả về của hàm trước đó bị lỗi.
Ví dụ: Tính đơn giá cho số hàng bán được trong ngày tại của hàng hoa quả.
D2=C2/B2
Hoa quả | Số lượng | Tổng tiền | Đơn giá |
Banana | 200 | 40 | 0,2 |
Apple | 125 | 69 | 0,552 |
Pear | 0 | 30 | #DIV/0! |
Pineapple | None | 210 | #VALUE! |
Orange | 20 | None | #VALUE! |
| Tổng cộng | 349 | |
Ở bản dữ liệu trên, ta thấy, Ô D4,D5,D6 kết quả trả về bị lỗi, do các số bị chia và số chia không thỏa mãn điều kiện của phép chia.
Bây giờ nếu ta không muốn kết quả của các ô này là các giá trị bị lỗi, thì ta có thể dùng hàm xử lý lỗi để giải quyết.
1. Hàm IFerror. Hàm này chỉ hoạt động ở Excel 2007 trở lên.
=IFERROR(value,value_if_error)Trong đó:
1. Value: Là giá trị cần đánh giá lỗi.
2. Value_if_error
Cách thức hoạt động của hàm này như sau:
Nếu Value bị lỗi thì hàm sẽ trả về giá trị của Value_if_error
ở ví dụ trên, ta muốn hàm kết quả trả về là 0 nếu phép chia bị lỗi.
Ta có
D2=iferror(C2/B2,0)
Value sẽ là: C2/B2 và Value_if_error là 0
Hoa quả | Số lượng | Tổng tiền | Đơn giá | Kết quả |
Banana | 200 | 40 | =iferror(C2/B2,0) | 0,2 |
Apple | 125 | 69 | =iferror(C3/B3,0) | 0,552 |
Pear | 0 | 30 | =iferror(C4/B4,0) | 0 |
Pineapple | None | 210 | =iferror(C5/B5,0) | 0 |
Orange | 20 | None | =iferror(C6/B6,0) | 0 |
| Tổng cộng | 349 | | |
Ta có thể thêm bất cứ nội dung nào vào vế Value_if_error, D2=iferror(C2/B2,"")
D2=iferror(C2/B2,"Phép chia không thỏa mãn")
Note: Hàm Iferror có thể handle hầu như tất cả các lỗi: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!.
Tuy nhiên nó không hoạt động trong excel 2003 và các phiên bản trước đó.
2. Ngoài ra cũng có một số hàm dùng để đánh giá một giá trị có bị lỗi hay không,Ví dụ:
- Hàm ISERR(Value), Hàm này dùng để đánh giá bất kỳ lỗi nào, ngoại trừ lỗi #N/A
- Hàm ISERROR(Value) có thể tìm ra tất cả các dạng lỗi: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!).
- Hàm ISNA(Value) Chỉ đánh giá lỗi #N/A mà thôi.
Trong 3 hàm trên, ta thấy hàm IsError() có bao hàm cho các
hàm ISERR() và
Hàm ISNA(), do đó tôi khuyên bạn nếu công thức của bạn chứa nhiều điều kiện, hoặc bạn không lường trước được những lỗi nào có thể xảy ra, thì bạn nên dùng hàm IsError() cho mọi trường hợp.
Đối với Excel 2003 thì Hàm Iferror() chưa được hỗ trợ, do đó ta dùng các hàm này kết hợp với
Hàm IF để xử lý lỗi xảy ra.
D2=If(ISERROR(D2),0,
C2/B2)
Nếu giá trị D2 bị lỗi, thì trả về giá trị 0, nếu không bị lỗi thì thực hiện phép chia C2/B2
Hiện nay, Excel 2007 và các phiên bản sau này, với các tính năng mạnh mẽ, được cải thiện và hiệu suất làm việc cao hơn nên ngày càng có nhiều người sử dụng nhiều hơn, do đó bạn nên dùng hàm IFerror thay vì dùng Hàm Iserror kết hợp với Hàm IF
Chú ý: Việc đăng lại bài viết trên ở website hoặc các phương tiện truyền thông khác mà không ghi rõ nguồn http://aneedz.com là vi phạm bản quyền