Chào các bạn trong diễn đàn,
Mình thường xuyên phải làm việc với các danh sách dữ liệu lớn và đôi khi gặp khó khăn trong việc xác định các bản ghi bị trùng lặp nhưng lại có một vài điều kiện khác nhau. Ví dụ, mình có một danh sách khách hàng, muốn tìm những khách hàng có cùng tên nhưng lại đến từ hai thành phố khác nhau.
Sử dụng chức năng Remove Duplicates thông thường thì hơi bất tiện vì nó sẽ xóa hết các bản ghi trùng lặp mà không cho mình tùy chọn theo điều kiện. Mình đã mày mò và tìm ra một cách kết hợp giữa Conditional Formatting và một chút công thức mảng khá hay để làm việc này.
Cách làm của mình như sau:
- Giả sử dữ liệu của bạn nằm trong vùng A1:C100, với cột A là Tên, cột B là Thành phố.
- Bạn muốn tìm các bản ghi trùng Tên nhưng khác Thành phố.
- Đầu tiên, chọn vùng dữ liệu bạn muốn đánh dấu (ví dụ: A1:C100).
- Vào tab Home -> Conditional Formatting -> New Rule...
- Chọn Use a formula to determine which cells to format.
- Nhập công thức sau vào ô Formula:
=SUMPRODUCT(--($A$1:$A$100=$A1),--($B$1:$B$100$B1)) - Click vào nút Format..., chọn tab Fill và chọn một màu nền tùy ý để đánh dấu.
- Nhấn OK.
Với công thức này, nó sẽ đếm xem có bao nhiêu bản ghi khác có cùng tên ($A$1:$A$100=$A1) nhưng khác thành phố ($B$1:$B$100$B1). Nếu kết quả đếm lớn hơn 0, tức là có bản ghi trùng tên nhưng khác thành phố, thì ô đó sẽ được tô màu.
Cách này giúp mình nhanh chóng nhìn ra các trường hợp cần xem xét lại. Không biết có bạn nào có cách làm khác hoặc tối ưu hơn không, chia sẻ để mọi người cùng học hỏi nhé!