Xin công thức để lọc được dữ liệu từ một cột có dữ liệu trung nhau để ra được dữ liệu không trung nhau
Sub greyrey5ry()
On Error Resume Next
Application.ScreenUpdating = False
Dim i As Long, k As Long, t As Long
Dim sArr(), dArr()
Dim Dic As Object
Set Dic = CreateObject("Scripting.dictionary")
sArr = Range("A1:A1000").Value ' ur5u6u6tit6u
ReDim dArr(1 To UBound(sArr), 1 To 1)
For i = 1 To UBound(sArr)
If Not Dic.exists(sArr(i, 1)) Then 'hytr5ur6ur6
k = k + 1
Dic(sArr(i, 1)) = k ' yreuruit6i
dArr(k, 1) = sArr(i, 1)
End If
Next
Range("b1:b1000").ClearContents ' ?ey5u5u
[b1].Resize(k, 1) = dArr ' yu5ur5ur5u
Set Dic = Nothing
Application.ScreenUpdating = True
End Sub
Copy sang rồi sử dụng cái có sẳn, bằng cách chọn dữ liệu rồi vào Data > Remove Duplicates, hộp thoại hiện ra chọn Continue with.........rồi nhấn nút Remove Duplicates, hộp thoại hiện ra nhấn OK.Xin công thức để lọc được dữ liệu từ một cột có dữ liệu trung nhau để ra được dữ liệu không trung nhau
mình muốn dùng công thức. để tự động bạn àPivot Table
mình muốn dùng công thức, để sử dụng kết quả tự động cho tiếp công việc nữaCopy sang rồi sử dụng cái có sẳn, bằng cách chọn dữ liệu rồi vào Data > Remove Duplicates, hộp thoại hiện ra chọn Continue with.........rồi nhấn nút Remove Duplicates, hộp thoại hiện ra nhấn OK.
Chứ không nhất thiết cái gì cũng sử dụng hàm hoặc code.
Bài 3 với 6 có công thức đó, làm cách nào cũng được.mình muốn dùng công thức. để tự động bạn à
Bài đã được tự động gộp:
mình muốn dùng công thức, để sử dụng kết quả tự động cho tiếp công việc nữa
Remove Duplicate là tốt nhất rồi.Pivot Table là được luôn
Remove Duplicates là được liền.
Conslidate dữ liệu mà dùng công thức là quả đùa với lửa.mình muốn dùng công thức. để tự động bạn à
...
mình muốn dùng công thức, để sử dụng kết quả tự động cho tiếp công việc nữa
Mình à, Pivot Table còn siêu tự động luôn ấy. Chưa kể tốc độ siêu thanh.để tự động
Muốn tự động thì phải dùng VBA.mình muốn dùng công thức, để sử dụng kết quả tự động cho tiếp công việc nữa
Muốn tự động thì phải dùng VBA.
Nếu dữ liệu lớn mà sử dụng hàm chắc có ngày sẽ bực mình vì nó.
Sub LOC()
Range("DS").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Range("DS").Copy
Range("B1").Select
ActiveSheet.Paste
Columns("B:B").EntireColumn.AutoFit
Application.CutCopyMode = False
ActiveSheet.ShowAllData
Range("B1").Select
End Sub
Code bài 12 có thể sửa lại thế này:Code này dùng được không Chú.
Mã:Sub LOC() Range("DS").AdvancedFilter Action:=xlFilterInPlace, Unique:=True Range("DS").Copy Range("B1").Select ActiveSheet.Paste Columns("B:B").EntireColumn.AutoFit Application.CutCopyMode = False ActiveSheet.ShowAllData Range("B1").Select End Sub
Sub LOC()
Range("DS").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Range("DS").Copy Range("B1")
Columns("B:B").EntireColumn.AutoFit
ActiveSheet.ShowAllData
Range("B1").Select
End Sub
Sub LocDuyNhat()
Range("DS").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True
Range("B1").Select
End Sub
Sub Unique()
t = Timer
With CreateObject("ADODB.Connection")
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=""Excel 12.0;HDR=No"";Data Source=" & ThisWorkbook.FullName
Sheet1.Range("B1").CopyFromRecordset .Execute("Select distinct F1 from [Sheet1$A:A]")
End With
[c1] = Timer - t
End Sub
Xin chào bạn @saobekhonglac : qua kết quả trên, bạn có thể giúp mình vừa lọc dữ liệu trùng và kèm thêm điều kiện (kèm hình và file đính kèm)Nếu phiên bản cũ thì có thể xài hàm này:
C2=IFERROR(INDEX($A$1:$A$16,MATCH(0,COUNTIF($C$1:C1,$A$1:$A$16),0)),"")
View attachment 249162
Hiện được kết quả như cột C chứ?Xin chào bạn @saobekhonglac : qua kết quả trên, bạn có thể giúp mình vừa lọc dữ liệu trùng và kèm thêm điều kiện (kèm hình và file đính kèm)
p/s: công thức của bạn gọn, không cần cột phụ
=IFERROR(INDEX($A$1:$A$27,MATCH(,INDEX(COUNTIF(C$1:C1,$A$1:$A$27)+($B$1:$B$27="-"),),)),"")
Mình cám ơn bạn nhiều, mình đã làm được rồi. Mình sẽ ứng dụng vào công việc.Hiện được kết quả như cột C chứ?
Công thức ở C2:
Mã:=IFERROR(INDEX($A$1:$A$27,MATCH(,INDEX(COUNTIF(C$1:C1,$A$1:$A$27)+($B$1:$B$27="-"),),)),"")