Các câu hỏi về lọc ra danh sách duy nhất (loại bỏ dữ liệu trùng)

Liên hệ QC
Em cám ơn anh đã hỗ trơ
 
Mình có dữ liệu ở cột B. Mình muốn lọc duy nhất và sort theo thứ tự lớn dần rồi ghi kết quả từ G21, từ G21:G32 nếu dòng nào không có dữ liệu sẽ ẩn đi.
Nhờ các anh chị giúp dùm. Cảm ơn!
 

File đính kèm

  • loc.xlsb
    7.4 KB · Đọc: 16
Mình có dữ liệu ở cột B. Mình muốn lọc duy nhất và sort theo thứ tự lớn dần rồi ghi kết quả từ G21, từ G21:G32 nếu dòng nào không có dữ liệu sẽ ẩn đi.
Nhờ các anh chị giúp dùm. Cảm ơn!
Thử:
Mã:
G21=IFERROR(AGGREGATE(15,6,$B$3:$B$100/(COUNTIF(OFFSET($B$3,,,ROW($1:$100)),$B$3:$B$100)=1),ROW($A1)),"")
Thân.
 
Mình có dữ liệu ở cột B. Mình muốn lọc duy nhất và sort theo thứ tự lớn dần rồi ghi kết quả từ G21, từ G21:G32 nếu dòng nào không có dữ liệu sẽ ẩn đi.
Nhờ các anh chị giúp dùm. Cảm ơn!
Làm theo File của bạn, code:
PHP:
Sub abc()
    With Sheet1
        .Range("B3:B15").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("H21"), Unique:=True
        .Range("G21:G100").Sort Key1:=Range("G21"), Order1:=xlAscending
    End With
End Sub
 

File đính kèm

  • LOC DUY NHAT (1).xls
    37 KB · Đọc: 19
Lần chỉnh sửa cuối:
Làm theo File của bạn, code:
PHP:
Sub abc()
    With Sheet1
        .Range("B3:B15").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("H21"), Unique:=True
        .Range("G21:H100").Sort Key1:=Range("H21"), Order1:=xlAscending
    End With
End Sub
Bạn thêm giúp code để ẩn dòng từ G21:G32 nếu các dòng này không có dữ liệu.
Cảm ơn bạn đã giúp.
 
mấy anh cho em hỏi em làm bảng excel đánh giá điểm nhân viên hàng tháng, em dùng lệnh importrance kết xuất dữ liệu giữa các sheet mà bây giờ có dữ liệu trùng em ko xóa được các anh chỉ dùm em cách xử lý để xóa dữ liệu cột trùng nha các anh, cám ơn các anh nhiều
Bài đã được tự động gộp:

mấy anh cho em hỏi em làm bảng excel đánh giá điểm nhân viên hàng tháng, em dùng lệnh importrance kết xuất dữ liệu giữa các sheet mà bây giờ có dữ liệu trùng em ko xóa được các anh chỉ dùm em cách xử lý để xóa dữ liệu cột trùng nha các anh, cám ơn các anh nhiều, em sử dụng google drive để đánh giá qua gmail của từng nhân viên
 
Kính chào các Anh Chị diễn đàn !
Nhờ các Anh Chị hỗ trợ giúp Em cái file này với!
Em xin cảm ơn trước
 

File đính kèm

  • baitap9.xlsx
    47 KB · Đọc: 13
PHP:
Sub LocDuLieuDuyNhat()
Dim Dict As Object, iRow As Long, I As Long
Dim TmpArr As Variant
 
Set Dict = CreateObject("Scripting.Dictionary")
With Sheets("DuLieu")
    iRow = .[a65500].End(xlUp).Row
    TmpArr = .[A2].Resize(iRow).Value
    ReDim Arr(1 To iRow, 1 To 1) As String
    Sheets("Ket Qua").Range("A2").CurrentRegion.ClearContents
    For iRow = 1 To UBound(TmpArr, 1)
        If Len(TmpArr(iRow, 1)) > 0 And Not Dict.exists(TmpArr(iRow, 1)) Then
            I = I + 1:                                  Arr(I, 1) = TmpArr(iRow, 1)
             Dict.Add TmpArr(iRow, 1), I
        End If
    Next iRow
    If I Then Sheets("Ket Qua").Range("A2").Resize(I).Value = Arr
End With
End Sub
Lần sau nên chăng ta lập chủ đề mới nha bạn!
 
Kính chào các Anh Chị diễn đàn !
Nhờ các Anh Chị hỗ trợ giúp Em cái file này với!
Em xin cảm ơn trước
1 cách:
PHP:
Sub Test()
    Dim d As Object, Arr, i&, LR&
    Set d = CreateObject("Scripting.Dictionary")
    With Sheets("Dulieu").Range("A2:a1100")
        .AutoFilter Field:=1, Criteria1:=""
        .SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    With Sheets("Dulieu")
        LR = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = .Range("A2:A" & LR)
        For i = 1 To UBound(Arr, 1)
            d(Arr(i, 1)) = 1
        Next i
    End With
    Sheets("Ket qua").Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
End Sub
 
1 cách:
PHP:
Sub Test()
    Dim d As Object, Arr, i&, LR&
    Set d = CreateObject("Scripting.Dictionary")
    With Sheets("Dulieu").Range("A2:a1100")
        .AutoFilter Field:=1, Criteria1:=""
        .SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    With Sheets("Dulieu")
        LR = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = .Range("A2:A" & LR)
        For i = 1 To UBound(Arr, 1)
            d(Arr(i, 1)) = 1
        Next i
    End With
    Sheets("Ket qua").Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
End Sub
Em cảm ơn nhiều!. Trường hợp em muốn giữ nguyên trạng thái dữ liệu ở cột A trong sheet Dulieu thì phải thay đổi như thế nào?
 
Em cảm ơn nhiều!. Trường hợp em muốn giữ nguyên trạng thái dữ liệu ở cột A trong sheet Dulieu thì phải thay đổi như thế nào?
Vậy thì bạn thay bằng:
PHP:
Sub Test2()
    Dim d As Object, Arr, i&, LR&
    Set d = CreateObject("Scripting.Dictionary")
    With Sheets("Dulieu").Range("A2:a1100")
        .AutoFilter 1, "<>"
        .Offset(1).Copy Sheets("Ket qua").Range("A2")
        .AutoFilter
    End With
    With Sheets("Ket qua")
        LR = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = .Range("A2:A" & LR)
        For i = 1 To UBound(Arr, 1)
            d(Arr(i, 1)) = 1
        Next i
        .Range("B2").Resize(d.Count) = Application.Transpose(d.keys)
        .Columns(1).Delete
    End With
End Sub
 
Web KT
Back
Top Bottom