Để lọc ra một danh sách không trùng lắp từ một danh sách chứa dữ liệu trùng lắp thì có rất nhiều cách. Cách đơn giản nhất mà chúng ta thường dùng đó là sử dụng chức năng "Remove duplicates".
Với chức năng remove duplicates trong excel ta chỉ việc chọn danh sách mà mình cần lọc rồi vào data chọn vào nút remove duplicates là có thể lọc ra dược danh sách đã loại bỏ giá trị trùng lặp.
Những với cách sử dụng chức năng remove duplicates này thì mỗi lần thay dữ liệu mới ta lại phải tiến hành làm nó một lần, nếu n lần thay đổi thì n lần chúng ta phải làm lại thao tác đó, thật sự rất nhàm chán và mệt mỏi khi làm điều đó.
Dưới đây là bài viết hướng dẫn cách lọc ra danh sách không trùng lắp từ một danh sách chứa dữ liệu trùng lắp.
Phương pháp để lọc danh sách khung trùng lắp từ danh sách chứa dữ liệu trùng lặp là kết hợp giữa hàm lookup và hàm countif.
Công thức:
=LOOKUP(2,1/(COUNTIF($F1:F$1, $B$2:$B$12&"")=0), $B$2:$B$12)
hoặc
=LOOKUP(2, 1/(COUNTIF($F$1:F1, $B$2:$B$10000)+( $B$2:$B$10000="")=0), $B$2:$B$10000)
Lưu ý &"" hay ( $B$2:$B$10000="") là loại bỏ ô trắng đầu tiên khi xuất danh sách đã lọc ra. Nếu không có phần này thì khi xuất ra bạn sẽ luôn thấy có một ô trống phía trên cùng.
Để thêm điều kiện loại bỏ ở trên thì bạn có thể biến chế theo như công thức dưới đây
=LOOKUP(2,1/((COUNTIF($G$1:G1, $B$2:$B$12&"")+( $D$2:$D$10000="củ"))=0), $B$2:$B$12)
Ngoài cách trên chúng ta cũng có thê sử dụng mảng trong excel để lọc danh sách không trùng lắp như bên dưới
=INDEX($B$2:$B$20,MATCH(0,COUNTIF($F$1:F1,$B$2:$B$20),0))
Sau khi nhập công thức trên xong thì bấm tổ hợp phím "Ctrl + Shift + Enter" lúc này công thức mới chạy và bạn sẽ thấy trong công thức có một chút thay đổi như sau:
{=INDEX($B$2:$B$20,MATCH(0,COUNTIF($I$1:I1,$B$2:$B$20),0))}
Ngoài các cách trên còn có cách sử dụng vba để lọc danh sách không trùng lắp từ danh sách chứa dữ liệu trùng lắp. Nhưng vba thì nhiều người không rành và không biết cách sử dụng như nào, nếu ai muốn thì có thể để lại comment mình up lên cho.
Lọc danh sách không trùng lắp với vba thế nào ạ. Mong bạn chia sẽ. Thanks.
Trả lờiXóaBạn sử dụng đoạn code này nha.
XóaPublic Function DemKhongTrung(rng As Range) As Variant
Dim vaData As Variant
Dim CellValue As Variant
Dim arr As Collection
vaData = rng.Value
Set arr = New Collection
On Error Resume Next
For Each CellValue In vaData
If CellValue <> "" And Application.CountIf(rng, CellValue) < 2 Then
arr.Add CellValue, CStr(CellValue)
End If
Next
On Error GoTo 0
DemKhongTrung = arr.Count
End Function