Chào mọi người,
Dạo này mình hay gặp phải một lỗi khá khó chịu trong Excel, đó là lỗi #VALUE! khi mình cố gắng cộng hoặc trừ các ô mà trong đó lại chứa một công thức khác. Cụ thể là khi mình dùng một công thức mảng (array formula) hoặc một công thức trả về mảng, sau đó lại dùng kết quả của nó để thực hiện phép tính số học, thì đôi khi nó lại báo lỗi #VALUE!.
Ví dụ, mình có một danh sách các số ở cột A, và ở cột B mình dùng công thức =IF(A1>10, A1*2, ""). Đến lúc mình muốn tính tổng của cột B, thay vì dùng =SUM(B1:B10) thì mình lại thử =SUM(IF(A1:A10>10, A1:A10*2, 0)). Nếu trong cột B có ô trống (do hàm IF trả về ""), thì khi SUM nó sẽ báo lỗi #VALUE!.
Sau khi tìm hiểu, mình biết là lỗi này xảy ra do Excel không thể thực hiện phép tính số học trên một giá trị không phải là số (ví dụ như chuỗi rỗng "").
Cách khắc phục mình hay dùng là:
- Sử dụng hàm
IFERRORđể bọc công thức, trả về 0 hoặc một giá trị số khác nếu có lỗi. Ví dụ:=IFERROR(SUM(IF(A1:A10>10, A1:A10*2, 0)), 0). - Thay thế các giá trị không mong muốn bằng 0 ngay trong công thức mảng. Ví dụ: thay
""bằng0trong hàm IF.
Cách thứ hai này có vẻ sạch sẽ hơn. Có bạn nào có cách nào khác hay hơn không? Chia sẻ cho mình với!