hỏi về cách loại bỏ những dữ liệu thừa?

Liên hệ QC

xuanhoaspt

Thành viên mới
Tham gia
1/4/08
Bài viết
27
Được thích
0
Mình bây giờ đang có 2 loại danh sách sinh viên 1 cái là danh sách cũ, 1 cái là danh sách mới. 2 danh sách này không khớp nhau. Ai chỉ cho mình cách nào để có thể lọc ra được những sinh viên không khớp nhau đó với. Cám ơn mọi người nhiều!
 
Mình bây giờ đang có 2 loại danh sách sinh viên 1 cái là danh sách cũ, 1 cái là danh sách mới. 2 danh sách này không khớp nhau. Ai chỉ cho mình cách nào để có thể lọc ra được những sinh viên không khớp nhau đó với. Cám ơn mọi người nhiều!
Lọc là lọc thế nào? Bạn phải nói rõ chứ:
- Lấy toàn bộ tên có trong DS1 mà không có trong DS2
- Lấy toàn bộ tên có trong DS2 mà không có trong DS1
- Lấy toàn bộ tên có trong cả 2 DS, cái nào trùng chỉ lấy 1
Ý bạn muốn sao?
 
Cái này bạn dùng hàm dò tìm sau đó lọc những giá trị không khớp ra là được
Thân
 
Lọc theo cả 3 cách đi. Phần không khớp thì check tay.
Dùng index, match mà lọc
 
nghĩa là giờ mình muốn lấy ra những người chỉ có ở 1 trong 2 danh sách, còn những người khớp nhau rồi thì để nguyên như thế. Bác nào giúp với
 
nghĩa là giờ mình muốn lấy ra những người chỉ có ở 1 trong 2 danh sách, còn những người khớp nhau rồi thì để nguyên như thế. Bác nào giúp với
Này nhé:
- Bạn có 2 DS, DS1 và DS2
- Giờ ta lấy ra những người chỉ có trong DS1 hoặc DS2
- Còn những người có tên ở cả 2 DS, bạn bảo để nguyên ---> Để nguyên là sao? Không lấy ra à?
===> Nếu là vậy thì ta dùng COUNTIF ở cà 2 DS, sau đó AutoFilter chỉ lấy những kết quả = 0 ---> Copy dử liệu đã Filter rồi paste sang nơi khác
- Còn như lấy luôn cả những người đã khớp ở 2 DS thì ta copy DS1, paste vào DS2, sau đó Advanced Filter 1 nhát là xong!
Tốt nhất bạn cho file lên luôn đi, nói rõ yêu cầu ---> Lòng vòng thế này mệt lắm
 
hỏi về lọc những sinh viên không trùng nhau

Đây mình có 2 danh sách này. Nhờ các bác lấy ra tên những người chỉ có ở 1 trong 2 danh sách đó. còn những người có trong cả 2 danh sách thì để nguyên.trong 2 danh sách này chỉ lệch nhau mấy người thôi nhưng mà mình có cả 1 đống danh sách như vậy nên ko thể làm thủ công bằng tay được. Rất mong được các bạn giúp đỡ
 

File đính kèm

  • danhsach.xlsx
    11.4 KB · Đọc: 22
Xong cho bạn rồi đây, lần sau nhớ đưa file lên sẽ nhanh hơn nữa

nghĩa là giờ mình muốn lấy ra những người chỉ có ở 1 trong 2 danh sách, còn những người khớp nhau rồi thì để nguyên như thế. Bác nào giúp với
PHP:
 Option Explicit
Sub FilterFrom2List()
 Dim Rng As Range, sRng As Range
 Dim eRw As Long, jJ As Long, bSh As Byte
 Dim Sh As Worksheet, Sh0 As Worksheet
 
 Set Sh0 = Sheets("S0"):            Sh0.UsedRange.Offset(1).Clear
 Application.ScreenUpdating = False
 For bSh = 1 To 2
    Set Sh = Choose(bSh, Sheets("D1"), Sheets("D2"))
    Set Rng = Sh.Range(Sh.[b1], Sh.[b1].End(xlDown))
 
    Sheets(Choose(bSh, "D2", "D1")).Select
    eRw = [b65500].End(xlUp).Row
 
    For jJ = 2 To eRw
        Set sRng = Rng.Find(Cells(jJ, "B").Value, , xlFormulas, xlWhole)
        If sRng Is Nothing Then
            Sh0.[b65500].End(xlUp).Offset(1) = Cells(jJ, "B").Value
            Cells(jJ, "B").Interior.ColorIndex = 35 + 2 * bSh
        End If
    Next jJ
 Next bSh
End Sub
 

File đính kèm

  • GPE.rar
    11.5 KB · Đọc: 14
Đây mình có 2 danh sách này. Nhờ các bác lấy ra tên những người chỉ có ở 1 trong 2 danh sách đó. còn những người có trong cả 2 danh sách thì để nguyên.trong 2 danh sách này chỉ lệch nhau mấy người thôi nhưng mà mình có cả 1 đống danh sách như vậy nên ko thể làm thủ công bằng tay được. Rất mong được các bạn giúp đỡ
1> Tại cell C2 bạn gõ công thức:
=SUMPRODUCT(($E$2:$E$53&$F$2:$F$53=$A2&$B2)*1)
kéo fill xuống
2> Tại cell C2 bạn gõ công thức
=SUMPRODUCT(($A$2:$A$56&$B$2:$B$56=$E2&$F2)*1)
kéo fill xuống
3> AutoFilter bảng 1 với điều kiện lọc tại cột C là = 0
4> AutoFilter bảng 2 với điều kiện lọc tại cột G là = 0
5> Sau đó copy dử liệu rồi paste sang nơi khác
 
PHP:
 Option Explicit
Sub FilterFrom2List()
 Dim Rng As Range, sRng As Range
 Dim eRw As Long, jJ As Long, bSh As Byte
 Dim Sh As Worksheet, Sh0 As Worksheet
 
 Set Sh0 = Sheets("S0"):            Sh0.UsedRange.Offset(1).Clear
 Application.ScreenUpdating = False
 For bSh = 1 To 2
    Set Sh = Choose(bSh, Sheets("D1"), Sheets("D2"))
    Set Rng = Sh.Range(Sh.[b1], Sh.[b1].End(xlDown))
 
    Sheets(Choose(bSh, "D2", "D1")).Select
    eRw = [b65500].End(xlUp).Row
 
    For jJ = 2 To eRw
        Set sRng = Rng.Find(Cells(jJ, "B").Value, , xlFormulas, xlWhole)
        If sRng Is Nothing Then
            Sh0.[b65500].End(xlUp).Offset(1) = Cells(jJ, "B").Value
            Cells(jJ, "B").Interior.ColorIndex = 35 + 2 * bSh
        End If
    Next jJ
 Next bSh
End Sub
Bạn ơi mình mở lên thì nó như thế này. Mình chưa hiểu cách của bạn, giải thích giúp mình với.
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    195.2 KB · Đọc: 11
Bạn ơi mình mở lên thì nó như thế này. Mình chưa hiểu cách của bạn, giải thích giúp mình với.
Macro sẽ dò lần lượt từng Record của 'D1' có trong 'D2' hay không; Nếu không có thì chép Record đó qua 'S0' & tô màu nên (37)
Sau đó lại dò lần lượt tất thẩy các record bến 'D2' xem có trên 'D1' thì thôi, không có thì chép record đó sang 'S0'; Tô màu nền 39 cho record cho bạn dễ kiểm tra í mà.
Để thực thi suông sẻ, cấu trúc hai sheet phải giống nhau.
(Nếu khác nhau chút đỉnh cũng xong, nhưng lúc đó tốn những thứ khác.)
 

File đính kèm

  • Copy of danhsach.xlsx
    14.6 KB · Đọc: 7
Web KT
Back
Top Bottom