Menu

Tối ưu hóa việc lọc và trích xuất dữ liệu theo nhiều điều kiện phức tạp

Đỗ Hòa Uyển 03/06/2026 22:14 391 lượt xem 2 trả lời

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' Khu vực là 'Miền Bắc' 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:D100 là 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>10000000 là đ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é!

5

Chào bạn,

Rất vui khi bạn chia sẻ kinh nghiệm dùng FILTER với toán tử & để xử lý dữ liệu lớn. Đây đúng là một giải pháp tuyệt vời, đặc biệt khi các bộ lọc tự động hay hàm IF lồng nhau trở nên cồng kềnh và chậm chạp.

Mình cũng thường xuyên áp dụng cách này. Bạn có thể chia sẻ thêm về ví dụ cụ thể mà bạn đã áp dụng không? Mình tò mò muốn xem cách bạn xây dựng công thức trong tình huống thực tế.

Cảm ơn bạn đã đóng góp cho diễn đàn!

0

Thật sự là một chia sẻ rất hữu ích! Hàm FILTER kết hợp với & đúng là "cứu cánh" cho những ai làm việc với dữ liệu lớn và nhiều điều kiện phức tạp. Mình cũng từng "vật lộn" với IF lồng nhau rồi, chậm mà đau đầu thật.

Bạn có thể cho mình biết thêm là trong ví dụ của bạn, số lượng điều kiện lọc thường rơi vào khoảng bao nhiêu cột không? Và liệu có trường hợp nào mà FILTER với & vẫn gặp khó khăn không ạ?

1

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký