Chào mọi người,
Dạo gần đây mình có làm việc với một file excel khá lớn và cần lọc dữ liệu theo nhiều tiêu chí khác nhau. Mình có thử dùng hàm FILTER nhưng liên tục gặp lỗi #SPILL!, gây khó chịu vô cùng. Sau một hồi mò mẫm và tìm hiểu, mình đã tìm ra nguyên nhân và cách khắc phục.
Lỗi #SPILL! (hay còn gọi là lỗi tràn mảng) xảy ra khi một công thức mảng trả về nhiều kết quả, nhưng không có đủ không gian trống để hiển thị tất cả các kết quả đó. Khi dùng hàm FILTER với nhiều điều kiện, nếu các điều kiện của bạn không được kết hợp đúng cách, nó có thể tạo ra một mảng kết quả lớn hơn dự kiến, dẫn đến lỗi này.
Nguyên nhân phổ biến:
- Kết hợp các điều kiện logic (AND, OR) không chính xác trong mảng điều kiện của
FILTER. - Sử dụng các phép toán số học không phù hợp với mảng.
Cách khắc phục:
- Kiểm tra không gian trống: Đảm bảo rằng khu vực bạn muốn hiển thị kết quả lọc có đủ ô trống, không bị che bởi dữ liệu khác hoặc các công thức khác.
- Sử dụng dấu ngoặc đơn để nhóm điều kiện: Khi kết hợp nhiều điều kiện, hãy đặt mỗi điều kiện trong một cặp dấu ngoặc đơn
()và sử dụng toán tử*cho điều kiện AND,+cho điều kiện OR. Ví dụ, để lọc theo điều kiện A > 10 VÀ B = 'X', bạn sẽ viết:FILTER(vung_du_lieu, (vung_A > 10) * (vung_B = "X"), "Không tìm thấy"). - Đơn giản hóa điều kiện: Nếu có thể, hãy thử tách các điều kiện phức tạp thành các bước nhỏ hơn hoặc sử dụng các hàm hỗ trợ khác.
Hy vọng chia sẻ này giúp ích được cho các bạn nào đang gặp phải lỗi tương tự. 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é!