Chào mọi người,
Hôm nay mình muốn chia sẻ về một lỗi khá khó chịu mà mình vừa gặp phải khi làm việc với file Excel lớn, đó là lỗi #CALC!. Lỗi này thường xuất hiện khi hàm SUBTOTAL được sử dụng để tính toán trên một phạm vi dữ liệu mà trong đó có chứa các ô trả về lỗi (ví dụ: #VALUE!, #DIV/0!, #REF!...).
Cụ thể, tình huống của mình là mình dùng SUBTOTAL để tính tổng một cột, nhưng cột đó lại có chứa các công thức tính toán khác mà đôi khi trả về lỗi do điều kiện không thỏa mãn hoặc dữ liệu đầu vào không hợp lệ. Khi đó, hàm SUBTOTAL thay vì bỏ qua các ô lỗi này thì lại trả về #CALC!, làm ảnh hưởng đến kết quả cuối cùng.
Sau khi tìm hiểu và thử nghiệm, mình thấy có một vài cách để khắc phục:
- Sử dụng hàm IFERROR hoặc IFNA bọc các công thức con: Đây là cách triệt để nhất. Bằng cách bọc các công thức trong cột dữ liệu gốc bằng
IFERRORhoặcIFNA, bạn có thể chỉ định một giá trị trả về (ví dụ: 0 hoặc để trống) khi công thức con bị lỗi. Khi đó,SUBTOTALsẽ không gặp phải lỗi nữa. Ví dụ: Thay vì=CongThucGoc(A1), bạn dùng=IFERROR(CongThucGoc(A1), 0). - Sử dụng hàm AGGREGATE: Hàm
AGGREGATEmạnh mẽ hơnSUBTOTALở chỗ nó cho phép bạn chỉ định loại lỗi nào mà hàm sẽ bỏ qua. Để thay thếSUBTOTAL, bạn có thể dùngAGGREGATEvới tùy chọn 9 (SUM) và tùy chọn 6 (Ignore error values). Công thức sẽ có dạng:=AGGREGATE(9, 6, RangeDoiChieu).
Mình thấy cách dùng AGGREGATE khá gọn gàng và hiệu quả trong trường hợp này. Tuy nhiên, nếu bạn quen thuộc với IFERROR thì nó cũng là một giải pháp tốt.
Có ai đã từng gặp lỗi này và có cách xử lý nào khác không, chia sẻ thêm cho mọi người cùng biết nhé!