xóa dữ liệu dùng VBA theo điều kiên

Liên hệ QC

caonguyen89

Thành viên mới
Tham gia
26/6/18
Bài viết
39
Được thích
4
Giới tính
Nam
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
 

File đính kèm

  • xóa dữ liệu trùng.xlsx
    120.1 KB · Đọc: 17
Bạn dùng privo table để lấy ra dữ liệu duy nhất ở cột E, sau đó, dùng nó để vlookup lại dữ liệu ở sheet ban đầu ấy, sao cứ phải dùng code
 
Dùng cột phụ đi cho nhanh. Cột phụ tại L có tiêu đề là Xoa
Ô L8 ghi công thức =COUNTIF($E$8:E8,E8), Fill xuống dưới
Filter những giá trị ở cột L > 1 rồi xóa cái rẹc là xong
 
Lần chỉnh sửa cuối:
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
Code tham khảo Dictionary
 
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
1 cách:
PHP:
Sub Test()
    Dim LR As Long
    LR = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row: [L8] = 1
    Sheet1.Range("L9:L" & LR).Formula = "=IF(COUNTIF($E$8:E9,E9)>1,"""",(MAX($L$8:L8)+1))"
    With Range("A7:L" & LR)
        .AutoFilter 12, ""
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
    Columns(12).ClearContents
End Sub
 
Bạn dùng privo table để lấy ra dữ liệu duy nhất ở cột E, sau đó, dùng nó để vlookup lại dữ liệu ở sheet ban đầu ấy, sao cứ phải dùng code
mình đang làm code rồi, giờ cần loại đi dữ liệu trùng nên bổ xung thôi
Bài đã được tự động gộp:

1 cách:
PHP:
Sub Test()
    Dim LR As Long
    LR = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row: [L8] = 1
    Sheet1.Range("L9:L" & LR).Formula = "=IF(COUNTIF($E$8:E9,E9)>1,"""",(MAX($L$8:L8)+1))"
    With Range("A7:L" & LR)
        .AutoFilter 12, ""
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
    Columns(12).ClearContents
End Sub
cám ơn ak.

không biết đến việc ghép hàm vào code. đoạn này rất bổ ích với em
 
Nếu dùng VBA

Mã:
Sub Xoa()
    Application.ScreenUpdating = False
    Dim n As Long, i As Long, j As Long
    n = Sheet1.Range("E65000").End(xlUp).Row
    Sheet1.Range("L8:L" & n).Formula = "=COUNTIF($E$8:E8,E8)"    
    For j = n To 8 Step -1
        If Sheet1.Range("L" & j) > 1 Then Sheet1.Range("L" & j).EntireRow.Delete
    Next
    Sheet1.Range("L8:L" & n).ClearContents
    MsgBox "Xoa xong", , "GPE"
    Application.ScreenUpdating = True
End Sub
 
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
Thử dùng code sau:
Mã:
Sub XoaDup()
    Sheet2.Range("A7").CurrentRegion.RemoveDuplicates _
    Columns:=5, Header:=xlYes
End Sub
 
Web KT
Back
Top Bottom