Lọc dữ liệu duy nhất

  • Thread starter Thread starter le tin
  • Ngày gửi Ngày gửi
Liên hệ QC

le tin

Học mãi
Tham gia
22/10/07
Bài viết
722
Được thích
560
Trên diễn đàn có nhiều bài lọc dữ liệu duy nhất kết hợp công thức rất hay nhưng số lệu nhiều(4000 dòng) thì rất chậm . Tôi muốn có 1 công thức tự tạo mà không rành ,nhờ các bạn giúp đỡ .
Cảm ơn

Cụ thể như file đính kèm
 

File đính kèm

Một câu hỏi rất trừu tượng. Cụ thể hơn nữa đi.
 
Upvote 0
Trên diễn đàn có nhiều bài lọc dữ liệu duy nhất kết hợp công thức rất hay nhưng số lệu nhiều(4000 dòng) thì rất chậm . Tôi muốn có 1 công thức tự tạo mà không rành ,nhờ các bạn giúp đỡ . Cảm ơn
Thứ nhất, 4000 ngàn dòng thì nếu dùng công thức thì sẽ rất nặng máy mặc dù dùng UDF. Thứ hai, nếu dùng Macro để làm thì tốc độ lại chậm hơn nữa. Vậy nếu bạn thích thì mình sẽ làm hai cách luôn để bạn so sánh. Nhưng bạn nên đưa toàn bộ công thức đó và số liệu làm ví dụ lên thì mới làm được. Chứ bạn nói vậy thì biết gì mà làm! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Đây là đoạn code ghi lại bằng Record New Macro
Mã:
Option Explicit
Sub Filter_Unique()
    Range("A1:A15").AdvancedFilter Action:=xlFilterCopy, _
               CopyToRange:=Range("B1"), Unique:=True
End Sub
 
Upvote 0
Nhanh nhất là bạn vào advance filter, vừa nhanh lại ko phải công thức. Còn nếu ko bạn thử cái VD mình vừa thí nghiệm xem. Cũng đang nghiên cứu cái Macro, nếu có gì lỗi thì lại hỏi tiếp trên 4r để các bác ấy sửa cho.
 

File đính kèm

Upvote 0
Nhanh nhất là bạn vào advance filter, vừa nhanh lại ko phải công thức. Còn nếu ko bạn thử cái VD mình vừa thí nghiệm xem. Cũng đang nghiên cứu cái Macro, nếu có gì lỗi thì lại hỏi tiếp trên 4r để các bác ấy sửa cho.
Sao không đúng vậy.
- Nó phân biệt chữ hoa ,chữ thường
- có khoảng trống
- mấy con số ở đâu vậy
Bạn Chibi cũng có 2 chữ a A
 
Lần chỉnh sửa cuối:
Upvote 0
Sao không đúng vậy.
- Nó phân biệt chữ hoa ,chữ thường
- có khoảng trống
- mấy con số ở đâu vậy
Bạn Chibi cũng có 2 chữ a A
Ah... không phải là nó phân biệt chử HOA và thường đâu, chử a trên cùng được Excel xem là TIÊU ĐỀ... (Nguyên Hương Thơm đã sơ ý chuyện này)
Nguyên tắc lọc bằng AF là: bắt buộc cell đầu tiên phải là TIÊU ĐỀ, bạn hiểu rồi chứ
Nếu làm cẩn thận thì phải thêm đoạn code Clear vùng kết quả trước
Ví dụ:
PHP:
Sub Loc()
 [B1:B60000].ClearContents
 [A1].CurrentRegion.AdvancedFilter Action:=2, CopyToRange:=[B1], Unique:=True
End Sub
Bạn xem thử với 50.000 dòng thì tốc độ như vầy đã vừa ý chưa
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn NDU , nếu cột A ở 1 sheet khác ví dụ sheet2 thì sửa thế nào .
 
Upvote 0
Cảm ơn bạn NDU , nếu cột A ở 1 sheet khác ví dụ sheet2 thì sửa thế nào .

Thực ra cái này bạn chỉ cần ghi macro việc sửa dụng AF thôi.
Mã:
Sub Loc()
 [B1:B60000].ClearContents
 Sheets("Sheet2").Select
 [A1].CurrentRegion.AdvancedFilter Action:=2, CopyToRange:=[iv1], Unique:=True
  Range("iv1:iv60000").Select
  Selection.Copy
  Sheets("Sheet1").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
  Sheets("Sheet2").Select
  Application.CutCopyMode = False
  Selection.ClearContents
  Range("A1").Select
  Sheets("Sheet1").Select
  Range("B1").Select
End Sub
 

File đính kèm

Upvote 0
Trên diễn đàn có nhiều bài lọc dữ liệu duy nhất kết hợp công thức rất hay nhưng số lệu nhiều(4000 dòng) thì rất chậm . Tôi muốn có 1 công thức tự tạo mà không rành ,nhờ các bạn giúp đỡ .
Cảm ơn

Cụ thể như file đính kèm

Nếu dùng sub thì như các anh đã hướng dẫn.
Mình gửi bạn cái UDF. Tuy linh động hơn trong việc thao tác nhưng sẽ chậm hơn Sub nếu dữ liệu lớn
PHP:
Function Locduynhat(Data As Range, Rank As Long) As Variant
Dim Count As Long, Fcell As Range, Data2 As Range
Set Fcell = Data.Resize(1, 1): Count = 1
For Each cell In Data
Set Data2 = Range(Fcell, cell)
If Count <= Rank Then
    If WorksheetFunction.CountIf(Data2, cell) = 1 Then
    Locduynhat = cell: Count = Count + 1
    Else: Locduynhat = ""
    End If
End If
Next
Set Fcell = Nothing: Set Data2 = Nothing
End Function
 

File đính kèm

Upvote 0
Bạn chỉ cần vào Data -Filter-Advandfilter
Chọn Copy to another location
List range :cột dữ liệu cần lọc
Critia range :ô trống bất kì
Copy to:một ô trông bất kì
Nhớ tick vào Unirecord only
Thế là xong
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom