Các hàm xử lý lỗi trong excel

Chủ nhật - 24/11/2013 08:17
Học các thủ thuật sau để giúp xử lý các lỗi xảy ra trong các hàm excel do tham số của chúng không thoả mãn điều kiện của hàm

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

 

Tác giả: Minh Phú

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

Tổng số điểm của bài viết là: 16 trong 4 đánh giá

Xếp hạng: 4 - 4 phiếu bầu
Click để đánh giá bài viết
Thống kê
  • Đang truy cập21
  • Máy chủ tìm kiếm3
  • Khách viếng thăm18
  • Hôm nay2,225
  • Tháng hiện tại5,677
  • Tổng lượt truy cập18,402,712
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây
Gửi phản hồi