Chào các bác, hôm nay em muốn chia sẻ một mẹo nhỏ mà em vừa vọc vạch được trong Power Query để xử lý dữ liệu trùng lặp, nhưng có điều kiện đi kèm. Cái này hay hơn là chỉ lọc trùng đơn thuần.
Tình huống của em là có một bảng dữ liệu bán hàng, bao gồm các cột như: Mã SP, Ngày bán, Số lượng, Doanh thu. Em muốn lọc ra những dòng mà Mã SP bị trùng, nhưng chỉ tính những dòng trùng xảy ra trong cùng một Ngày bán.
Cách làm của em như sau:
- Bước 1: Load dữ liệu vào Power Query.
- Bước 2: Chọn cột Mã SP, vào tab Add Column -> Custom Column. Đặt tên cột mới là 'CheckDuplicate'.
- Bước 3: Trong ô công thức, nhập công thức sau:
List.Count(Table.SelectRows(#"Changed Type", (innerRow) => innerRow[Mã SP] = [Mã SP] and innerRow[Ngày bán] = [Ngày bán])) > 1. Lưu ý: #"Changed Type" là tên bước trước đó của bạn, hãy thay thế cho phù hợp. - Bước 4: Sau khi tạo cột 'CheckDuplicate', bạn sẽ thấy các dòng bị trùng theo điều kiện sẽ có giá trị là
true. - Bước 5: Filter cột 'CheckDuplicate' để chỉ lấy các dòng có giá trị
true.
Như vậy là mình đã lọc được các dòng bị trùng lặp Mã SP trong cùng một Ngày bán. Cách này khá linh hoạt, các bác có thể thay đổi điều kiện lọc bằng cách chỉnh sửa phần innerRow[Ngày bán] = [Ngày bán] cho phù hợp với nhu cầu của mình.
Có bác nào có cách làm khác hay hơn, hoặc có tình huống xử lý trùng lặp phức tạp hơn không, cùng thảo luận cho anh em học hỏi ạ!