Chào mọi người,
Dạo này mình đang làm việc với các hàm mảng động mới của Excel (như FILTER, SORT, UNIQUE) và gặp phải một lỗi khá khó chịu: #SPILL!. Lỗi này xuất hiện khi một công thức mảng động cố gắng trả về nhiều kết quả nhưng lại bị chặn bởi dữ liệu hoặc ô trống ở các ô bên cạnh.
Mình đã thử nhiều cách nhưng đôi khi vẫn loay hoay mãi. Ví dụ, khi mình dùng hàm FILTER để lấy danh sách các mặt hàng còn tồn kho, nhưng lại quên xóa bớt dữ liệu ở các cột bên cạnh, là y như rằng bị báo lỗi #SPILL!.
Sau một hồi tìm hiểu và thử nghiệm, mình đúc kết được một vài kinh nghiệm để xử lý lỗi này:
- Kiểm tra vùng dữ liệu trả về: Đảm bảo rằng các ô bên dưới và bên phải nơi bạn nhập công thức là trống. Đôi khi chỉ cần xóa một vài ô là công thức chạy bình thường.
- Sử dụng
IFERROR: Bọc công thức mảng động của bạn trongIFERRORđể xử lý các trường hợp lỗi, ví dụ:=IFERROR(FILTER(A1:A10, B1:B10>0), "Không có kết quả"). Điều này không khắc phục gốc rễ lỗi nhưng giúp bảng tính trông gọn gàng hơn. - Tách công thức: Nếu mảng trả về quá lớn, hãy cân nhắc chia nó thành nhiều phần nhỏ hơn hoặc sử dụng các hàm khác để xử lý.
- Sử dụng
XLOOKUPthay thế: Trong nhiều trường hợp,XLOOKUPcó thể thay thế các hàm nhưFILTERhoặcVLOOKUPmà không gặp lỗi tràn mảng.
Các bạn đã gặp lỗi này bao giờ chưa? Có cao kiến nào khác để xử lý hiệu quả hơn không? Cùng thảo luận nhé!