Thử: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!
G21=IFERROR(AGGREGATE(15,6,$B$3:$B$100/(COUNTIF(OFFSET($B$3,,,ROW($1:$100)),$B$3:$B$100)=1),ROW($A1)),"")
Cảm ơn bạn giúp đỡ.Thử:
Thân.Mã:G21=IFERROR(AGGREGATE(15,6,$B$3:$B$100/(COUNTIF(OFFSET($B$3,,,ROW($1:$100)),$B$3:$B$100)=1),ROW($A1)),"")
Làm theo File của bạn, code: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!
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
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.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
Chỉ có thế này thôi: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.
Range("G21:G32").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Sao mình thêm vào thì nó ẩn luôn các dòng có dữ liệu bạn ạ.Chỉ có thế này thôi:
PHP:Range("G21:G32").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Bạn xem lại có phải cột G không? Nếu bạn vẫn chưa làm được, thì bạn chụp ảnh các dòng cần ẩn lên đây.Sao mình thêm vào thì nó ẩn luôn các dòng có dữ liệu bạn ạ.
Nếu mình chỉnh thành cột H thì code không hoạt động. Bạn xem giúp mình với.Chỉ có thế này thôi:
PHP:Range("G21:G32").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Ẩn bình thường đấy thôi( Code ẩn vùng màu vàng trong File)Nếu mình chỉnh thành cột H thì code không hoạt động. Bạn xem giúp mình với.
Cảm ơn bạn đã nhiệt tình giúp đỡ.Ẩn bình thường đấy thôi( Code ẩn vùng màu vàng trong File)
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
Lần sau nên chăng ta lập chủ đề mới nha bạn!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
1 cách: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
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?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
Vậy thì bạn thay bằng: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?
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
Em cảm ơn nhiều ạ!Lần sau nên chăng ta lập chủ đề mới nha bạn!
Bạn thử với Sub này xem: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?
Option Explicit
Sub sGpe()
Dim Dic As Object, sArr(), dArr(), I As Long, R As Long, K As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Sheets("Dulieu").Range("A2", Sheets("Dulieu").Range("A1000000").End(xlUp)).Value2
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 2)
For I = 1 To R
If sArr(I, 1) <> Empty Then
If Not Dic.Exists(sArr(I, 1)) Then
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = sArr(I, 1)
Dic.Item(sArr(I, 1)) = K
End If
End If
Next I
Sheets("Ket qua").Range("A2:B1000000").ClearContents
Sheets("Ket qua").Range("A2").Resize(K, 2) = dArr
Set Dic = Nothing
End Sub