Dạo này em dùng Excel mà hay gặp cái lỗi #SPILL! khó chịu quá. Tìm hiểu thì biết là do công thức mảng động trả về nhiều kết quả hơn phạm vi cho phép. Em đã thử xóa bớt dữ liệu, di chuyển công thức đi chỗ khác nhưng đôi khi vẫn bị lại.
Hôm nay em tình cờ phát hiện ra một nguyên nhân rất hay gặp mà có thể nhiều bác cũng bị giống em: sự xung đột với các Bảng Excel (Excel Tables).
Cụ thể là thế này:
- Khi mình nhập công thức mảng động vào một ô, ví dụ
=UNIQUE(A1:A10), nó sẽ trả về một mảng kết quả. - Nếu cái phạm vi mà công thức mảng động muốn trả về kết quả lại nằm trong hoặc chồng lấn với một Bảng Excel khác, thì Excel sẽ báo lỗi
#SPILL!. - Excel Table có một cơ chế tự động quản lý phạm vi riêng, nên nó không cho phép công thức mảng động tràn ra ngoài hoặc ghi đè lên nó.
Cách khắc phục rất đơn giản:
- Kiểm tra xem phạm vi mà công thức mảng động của bạn trả về có nằm trong hoặc giao với bất kỳ Bảng Excel nào không.
- Nếu có, hãy chuyển Bảng Excel đó thành một phạm vi bình thường. Cách làm là: chọn một ô bất kỳ trong Bảng đó, vào tab Table Design (hoặc Design trên các phiên bản cũ hơn), rồi nhấn nút Convert to Range.
- Sau khi chuyển đổi, thử nhập lại công thức mảng động. Lỗi
#SPILL!sẽ biến mất.
Em chia sẻ mẹo nhỏ này hy vọng giúp ích được cho các bác đang đau đầu với lỗi #SPILL!. Nhiều khi thủ phạm lại ở ngay cạnh mình mà mình không để ý.