Chào mọi người,
Dạo này mình thường xuyên phải làm việc với các bảng dữ liệu lớn, có nhiều cột và cần lọc ra những dòng thỏa mãn đồng thời nhiều điều kiện. Ban đầu, mình hay dùng các bộ lọc tự động (AutoFilter) kết hợp với các hàm IF lồng nhau, nhưng khi số lượng điều kiện tăng lên, file chạy rất chậm và khó quản lý.
Gần đây, mình có tìm hiểu và áp dụng cách dùng hàm FILTER kết hợp với toán tử AND (&) để xử lý vấn đề này. Cách này thực sự hiệu quả và giúp tối ưu hóa đáng kể thời gian xử lý.
Ví dụ, giả sử mình có bảng dữ liệu với các cột: Ngày, Sản phẩm, Khu vực, Doanh số. Mình muốn trích xuất các dòng có Sản phẩm là 'Laptop' VÀ Khu vực là 'Miền Bắc' VÀ Doanh số lớn hơn 10,000,000.
Công thức sẽ trông như thế này:
=FILTER(A1:D100, (B1:B100="Laptop") * (C1:C100="Miền Bắc") * (D1:D100>10000000), "Không tìm thấy dữ liệu")Trong đó:
A1:D100là vùng dữ liệu gốc.B1:B100="Laptop"là điều kiện cho cột Sản phẩm.C1:C100="Miền Bắc"là điều kiện cho cột Khu vực.D1:D100>10000000là điều kiện cho cột Doanh số.- Dấu
*ở đây đóng vai trò như toán tử AND, yêu cầu tất cả các điều kiện phải đúng. "Không tìm thấy dữ liệu"là thông báo hiển thị nếu không có dòng nào thỏa mãn.
Ưu điểm của cách này là:
- Công thức gọn gàng, dễ đọc và dễ sửa đổi.
- Tốc độ xử lý nhanh hơn nhiều so với các hàm lồng nhau.
- Kết quả trả về là một mảng động, tự động cập nhật khi dữ liệu nguồn thay đổi.
Cách này chỉ áp dụng cho các phiên bản Excel mới (Microsoft 365 hoặc Excel 2021). Các bạn có phiên bản cũ hơn có thể cân nhắc dùng Advanced Filter hoặc các hàm khác như SUMPRODUCT kết hợp IF.
Không biết có anh em nào có cách nào khác hay hơn hoặc gặp khó khăn gì khi áp dụng không, cùng thảo luận nhé!