Hỏi cách lọc các dòng dữ liệu trùng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

help_me_6669

Thành viên chính thức
Tham gia
25/9/08
Bài viết
83
Được thích
5
Mình có 1 bảng có rất nhiều dòng, trong đó có một số dòng trùng nhau
Nếu để loại bỏ những dòng trùng nhau thì sử dụng Remove Duplicates nhưng lại không biết là những dòng nào trùng cả.
Xin hỏi cách trích rút ra hoặc tô mầu những dòng dữ liệu trùng đó
Mình có file kèm theo, mong các bạn giúp đỡ! mình đang cần rất gấp.
Mình dùng Excel 2007
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có 1 bảng có rất nhiều dòng, trong đó có một số dòng trùng nhau
Nếu để loại bỏ những dòng trùng nhau thì sử dụng Remove Duplicates nhưng lại không biết là những dòng nào trùng cả.
Xin hỏi cách trích rút ra hoặc tô mầu những dòng dữ liệu trùng đó
Mình có file kèm theo, mong các bạn giúp đỡ! mình đang cần rất gấp.
Mình dùng Excel 2007
1. Tìm (lọc) dữ liệu trùng có nhiều cách và đã nói nhiều lắm rồi. Bạn search đi
2. Bài xin giúp đỡ mà có cứ kèm yêu cầu GẤP là dễ bị tẩy chay lắm đó.
 
1. Tìm (lọc) dữ liệu trùng có nhiều cách và đã nói nhiều lắm rồi. Bạn search đi
2. Bài xin giúp đỡ mà có cứ kèm yêu cầu GẤP là dễ bị tẩy chay lắm đó.
oach.... mình đã search khá nhiều nhưng chỉ tìm được lọc dữ liệu trùng theo một ô thôi chứ cả dòng trùng nhau thì... không thấy đâu cả nên mình mới nhờ mọi người giúp đỡ.
 
oach.... mình đã search khá nhiều nhưng chỉ tìm được lọc dữ liệu trùng theo một ô thôi chứ cả dòng trùng nhau thì... không thấy đâu cả nên mình mới nhờ mọi người giúp đỡ.

Khi dùng chức năng Remove Duplicates, nó cho phép ta chọn tiêu chí theo toàn bộ cột được chọn hoặc 1 số cột theo ý muốn.
 
Mình có 1 bảng có rất nhiều dòng, trong đó có một số dòng trùng nhau
Nếu để loại bỏ những dòng trùng nhau thì sử dụng Remove Duplicates nhưng lại không biết là những dòng nào trùng cả.
Xin hỏi cách trích rút ra hoặc tô mầu những dòng dữ liệu trùng đó
Mình có file kèm theo, mong các bạn giúp đỡ! mình đang cần rất gấp.
Mình dùng Excel 2007

Có thể dùng :
* công thức trong excel
* Dùng VBA -- ở đây mình dùng ADO , bạn copy code dưới đây vào và chạy ( lưu ý excel 2007 trở lên nhé )

[GPECODE=vb]
Sub NMH()
Dim cnn As ADODB.Connection, rst As ADODB.Recordset, strRst As String
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
With cnn
.connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data source=" & ThisWorkbook.FullName & _
";Extended properties=""Excel 12.0;HDR=No;IMEX=1"";"
.Open
End With
rst.Open "SELECT F1 FROM [Sheet1$A2:M65536] " & _
"GROUP BY F1 HAVING COUNT(*)>1", cnn, 3, 1, 1
While Not rst.EOF
strRst = "F1='" & rst(0).Value & "' " & strRst
rst.MoveNext
Wend
rst.Close
rst.Open "SELECT * FROM [Sheet1$A2:M65536] " & _
"WHERE " & Replace(Trim(strRst), " ", " OR ") & _
" ORDER BY F1 "
With Sheet2
.[A2:M1000].ClearContents
.[A2].CopyFromRecordset rst
.Activate
End With
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub
[/GPECODE]
 
Lần chỉnh sửa cuối:
Chức năng này loại bỏ dữ liệu trùng. Mình muốn phát hiện ra những dòng trùng nhau cơ

nếu bạn không cần lấy số liệu qua liên tục, ý mình là thao tác này bạn chỉ thực hiện khi làm báo cáo hoặc gì dó thì bạn có thể làm như sau:
1- ở N2 gõ cthức này vào
N2=COUNTIF($A$3:$A$21,A3) fill xuống
2- chọn vùng A2:N21 filter theo dk cột N "greater than 1"
3- sort lại theo cột A
4- copy vùng này ra chổ nào bạn thích
 
Bạn tham khảo cách dung ADO sau. Bấm nút Run Code và xem kết quả tại sheet2
Mã:
Option Explicit
Sub TrichLoc()
    Dim i As Long, Str As String
    Dim cnn As Object, lsSQL As String, lrs As Object
    Set cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    With cnn
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & ThisWorkbook.FullName & _
                ";Extended Properties=""Excel 8.0;HDR=Yes;"";"
        .Open
    End With
    For i = 1 To 13
        Str = Str & Sheet1.Cells(2, i) & "&"
    Next
    Str = Left(Str, Len(Str) - 1)
    lsSQL = "Select " & Replace(Str, "&", ",Tb1.") & " From " _
            & " (Select " & Str & " as Col," & Replace(Str, "&", ",") & " From [sheet1$A2:M65000]) as Tb1 " _
            & " Where Tb1.Col=" _
            & " Any(Select Col from " _
            & " (Select " & Str & " as Col, count(" & Str & ") as Col1, " & Replace(Str, "&", ",") & " From [sheet1$A2:M65000] Group by " & Replace(Str, "&", ",") & ") as a " _
            & " Where a.col1>1)" _
            & " Order by Tb1.SBT"
    lrs.Open lsSQL, cnn, 3, 1
    Sheet2.Range("A2:M6500").ClearContents
    Sheet2.Range("A2").CopyFromRecordset lrs
    Set lrs = Nothing
    cnn.Close: Set cnn = Nothing
End Sub
 

File đính kèm

muốn biết dòng trùng, khỏi code, vào conditional formatting->new rule-> format only unique or duplicate values-> format cells-> fill-> chọn màu, nhanh, gọn, kết quả thì thôi rồi luôn. muốn viết code thì record lại các thao tác vừa rồi thì có ngay chứ gì.
 
Web KT

Bài viết mới nhất

Back
Top Bottom