Menu

Tự động lọc dữ liệu theo nhiều điều kiện phức tạp bằng Power Query

Đào Đông Nghị 01/04/2026 08:28 541 lượt xem 0 trả lời

Chào mọi người,

Dạo này mình hay làm việc với dữ liệu lớn và có nhiều trường hợp cần lọc theo nhiều điều kiện lồng ghép, đôi khi còn là điều kiện 'OR' giữa các nhóm điều kiện khác nhau. Dùng các hàm lọc thông thường trong Excel khá là phức tạp và dễ sai sót. May mắn là mình đã tìm ra cách xử lý khá hiệu quả bằng Power Query.

Ví dụ, mình có một bảng dữ liệu bán hàng với các cột như: Ngày tháng, Sản phẩm, Khu vực, Doanh số, Nhân viên. Bây giờ mình muốn lọc ra những đơn hàng thỏa mãn:

  • (Sản phẩm là 'A' HOẶC Sản phẩm là 'B') VÀ (Khu vực là 'Miền Bắc' HOẶC Khu vực là 'Miền Trung')
  • HOẶC (Sản phẩm là 'C') VÀ (Doanh số > 10,000,000)

Việc này nếu làm bằng hàm IF lồng nhau trong Excel thì đúng là 'ác mộng'.

Với Power Query, mình làm theo các bước sau:

  1. Load dữ liệu vào Power Query Editor.
  2. Sử dụng chức năng 'Filter Rows' nhiều lần. Đối với các điều kiện 'OR' trong cùng một nhóm, mình có thể chọn nhiều giá trị trong hộp thoại lọc.
  3. Đối với các nhóm điều kiện 'OR' lớn hơn, mình có thể tạo các bảng lọc riêng lẻ rồi dùng 'Merge Queries' hoặc 'Append Queries' tùy theo logic bài toán.
  4. Một cách khác là dùng Advanced Editor để viết M code trực tiếp, rất linh hoạt. Ví dụ, để xử lý điều kiện trên, mình có thể viết một đoạn M code tương tự như sau (đây chỉ là minh họa, không phải code hoàn chỉnh):
Table.SelectRows(NguonDuLieu, each (([SanPham] = "A" or [SanPham] = "B") and ([KhuVuc] = "Miền Bắc" or [KhuVuc] = "Miền Trung")) or (([SanPham] = "C") and ([DoanhSo] > 10000000)))

Cách này giúp mình xử lý các bộ lọc phức tạp một cách nhanh chóng và đặc biệt là tự động mỗi khi dữ liệu nguồn thay đổi. Chỉ cần refresh là có kết quả mới.

Không biết có anh em nào có kinh nghiệm xử lý các bộ lọc phức tạp hơn nữa bằng Power Query không, chia sẻ thêm cho mọi người cùng học hỏi nhé!

0

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

Đăng nhập Đăng ký