Chào mọi người,
Dạo gần đây mình thấy có nhiều bạn gặp phải lỗi #SPILL! khi sử dụng các hàm mảng động mới trong Excel (như FILTER, SORT, UNIQUE...). Lỗi này xảy ra khi hàm trả về nhiều kết quả nhưng không đủ không gian để hiển thị. Hôm nay mình muốn chia sẻ một số kinh nghiệm và cách khắc phục lỗi này để mọi người tham khảo, hy vọng sẽ hữu ích cho công việc.
Nguyên nhân gây lỗi #SPILL!
- Vùng dữ liệu không đủ trống: Đây là nguyên nhân phổ biến nhất. Excel không thể 'tràn' kết quả ra các ô đã có dữ liệu hoặc bị chặn bởi một bảng/đối tượng khác.
- Bảng Excel (Excel Table) bị chặn: Nếu vùng trả về kết quả nằm trong hoặc bị chặn bởi một bảng Excel khác, bạn cũng sẽ gặp lỗi này.
- Hàm trả về nhiều kết quả không mong muốn: Đôi khi, logic của hàm lại trả về nhiều kết quả hơn bạn nghĩ, dẫn đến tràn ô.
Cách khắc phục lỗi #SPILL!
- Dọn dẹp vùng dữ liệu: Đảm bảo vùng mà hàm mảng động của bạn sẽ trả về kết quả là hoàn toàn trống. Xóa hết dữ liệu hoặc các đối tượng không cần thiết trong vùng đó.
- Di chuyển hàm hoặc bảng: Nếu có thể, hãy di chuyển hàm mảng động của bạn đến một vị trí khác trên trang tính hoặc di chuyển bảng Excel bị chặn ra khỏi vùng trả về.
- Sử dụng
$để cố định vùng: Trong một số trường hợp, việc sử dụng ký hiệu$để cố định các tham chiếu ô có thể giúp Excel xác định rõ hơn vùng trả về, nhưng cần cẩn thận khi áp dụng. - Kiểm tra lại logic hàm: Rà soát lại công thức của bạn. Liệu có thể tối ưu hóa để hàm chỉ trả về kết quả cần thiết, tránh tràn không? Ví dụ, với hàm FILTER, bạn có thể cần xem lại điều kiện lọc.
- Sử dụng
IFERRORhoặcIFNA(ít hiệu quả với #SPILL!): Mặc dù các hàm này thường dùng để xử lý lỗi, chúng ít hiệu quả trực tiếp với lỗi #SPILL! vì #SPILL! là lỗi tràn, không phải lỗi giá trị. Tuy nhiên, bạn có thể lồng chúng để xử lý các lỗi con bên trong hàm mảng động nếu có.
Hy vọng những chia sẻ trên sẽ giúp ích cho các bạn. Nếu có cách nào khác hiệu quả hơn, mọi người cùng thảo luận nhé!