Lọc danh sách duy nhất trong 1 bảng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoangminhtien

Thành viên gắn bó
Tham gia
29/2/08
Bài viết
1,685
Được thích
2,227
Nghề nghiệp
Mechanical Engineering
Em có danh sách trong 1 bảng, em muốn lọc lấy dữ liệu duy nhất trong bảng này vào 1 cột. ví dụ cụ thể em đã đề cập trong file, nhờ các anh chị em giúp.
Chân thành cảm ơn
 

File đính kèm

đây là 1 bài của anh NDU na ná giống cái mà bạn cần
 

File đính kèm

File đính kèm

Em có danh sách trong 1 bảng, em muốn lọc lấy dữ liệu duy nhất trong bảng này vào 1 cột. ví dụ cụ thể em đã đề cập trong file, nhờ các anh chị em giúp.
Chân thành cảm ơn

File của bạn đây
Mã:
Sub LocDuyNhat_Bang()
    On Error Resume Next
    Range([l9], [l65000]).ClearContents
    Set Dic = CreateObject("Scripting.Dictionary")
    For Each cls In Range([d5], [i50]).SpecialCells(2)
        If Not IsEmpty(cls) Then
            Dic.Add cls.Value, ""
        End If
    Next
    [l9].Resize(Dic.Count) = Application.Transpose(Dic.keys)
    [l9].Resize(Dic.Count).Sort [l9], 1
End Sub
 

File đính kèm

File của bạn đây
Mã:
Sub LocDuyNhat_Bang()
    On Error Resume Next
    Range([l9], [l65000]).ClearContents
    Set Dic = CreateObject("Scripting.Dictionary")
    For Each cls In Range([d5], [i50]).SpecialCells(2)
        If Not IsEmpty(cls) Then
            Dic.Add cls.Value, ""
        End If
    Next
    [l9].Resize(Dic.Count) = Application.Transpose(Dic.keys)
    [l9].Resize(Dic.Count).Sort [l9], 1
End Sub
Chào anh!
Em nghĩ anh nên dùng phương pháp xử lý mảng như nmhung49 đã làm mới là phương pháp tối ưu về mặt tốc độ
Tuy nhiên, cả anh và nmhung49 đều dùng TRANSPOSE... Cũng tốt vì code gọn, nhưng em không nghĩ đây là cách hay ---> Ở 1 mức giới hạn nào đó (về độ lớn của dữ liệu), giải thuật dùng TRANSPOSE sẽ bị "phá sản" toàn bộ
 
Mình thấy Hàm UDF của nmHung49 cũng có thể viết thành:

Mã:
Public Function UniqueList(ByVal rng As Range, Id As Long)
 Dim sArr, Arr(), item, dic, i
  If rng.Count = 1 Then UniqueList = rng.Value: Exit Function
   Set dic = CreateObject("Scripting.Dictionary")
    sArr = rng.Value
    For Each item In sArr
      If Not IsEmpty(item) And Not dic.exists(item) Then
      i = i + 1
        If i = Id Then
       UniqueList = item
      Exit Function
     Else
    dic.Add item, ""
  End If: End If
   Next item
 UniqueList = ""
End Function

Khi lấy DS ta nhập công thức rồi chép xuống thoải mái:

=uniquelist($D$5:$I$17,ROW(1:1))

Như vậy, đỡ phải xác định độ dài mảng tránh lỗi trong DS. Mình chỉ mượn dic tìm đến Item mình cần là "biến".
 
Cám ơn tất cả các bác. Tuy nhiên có thể dùng công thức cho trường hợp này được không? nhờ các bác giúp đỡ.
 
Ko tạo hàm dc

chào bạn, mình thấy code tạo cột từ bảng của bạn hay quá nhưng ko sao tạo dc hàm. Bạn vui lòng xem giúp mình sai chỗ nào trong file đính kèm nhé. Cảm ơn bạn.
Thân ái,
 

File đính kèm

Cám ơn tất cả các bác. Tuy nhiên có thể dùng công thức cho trường hợp này được không? nhờ các bác giúp đỡ.
Nếu dùng cột phụ song song với cột kết quả có được không? (Tức là cột phụ có số ròng tương đương cột chính)
 
Bạn xem thử file này.
giả thiết là mảng có số ròng và cột là 2 chữ số nhé
Mình mở file lên thấy chỉ có chữ "A" không mà bạn. Mình theo yêu cầu của bạn Hoangminhtien thì bài 2 đã có đáp áp rồi thì phải dùng cột phụ sao đó dùng công thứ lộc duy nhất ra là được. Nếu không dùng cột phụ thì làm sao để được kết quả theo yêu cầu của bạn Tiến??? Cái đó mới rắc rối
 
Mình mở file lên thấy chỉ có chữ "A" không mà bạn. Mình theo yêu cầu của bạn Hoangminhtien thì bài 2 đã có đáp áp rồi thì phải dùng cột phụ sao đó dùng công thứ lộc duy nhất ra là được. Nếu không dùng cột phụ thì làm sao để được kết quả theo yêu cầu của bạn Tiến??? Cái đó mới rắc rối
không hiểu !!!!
Mình đưa ảnh lên cho bạn coi
loc.JPG
 
Mình mở file lên thấy chỉ có chữ "A" không mà bạn. Mình theo yêu cầu của bạn Hoangminhtien thì bài 2 đã có đáp áp rồi thì phải dùng cột phụ sao đó dùng công thứ lộc duy nhất ra là được. Nếu không dùng cột phụ thì làm sao để được kết quả theo yêu cầu của bạn Tiến??? Cái đó mới rắc rối
Đây là cách sắp xếp duy nhất từ bảng không dùng cột phụ.
Excel 2007 trở lên mới coi được thui.
 

File đính kèm

Mình không biết máy mình có bị gì không nhưng mở lên vẫn vậy toàn chữ "A" không hà lạ thiệt đó
Win XP và Office 2007 của mình đều là công ty mua bản quyền và update thường xuyên, chắc không có gì đặc biệt.
 
Mình không biết máy mình có bị gì không nhưng mở lên vẫn vậy toàn chữ "A" không hà lạ thiệt đó
Vụ này gặp hoài, cũng chẳng biết tại sao nhưng chắc chắn rằng trường hợp này thường xãy ra đối với những công thức quá phức tạp
 
Vụ này gặp hoài, cũng chẳng biết tại sao nhưng chắc chắn rằng trường hợp này thường xãy ra đối với những công thức quá phức tạp
Anh xem lại file này, Công thức đâu có quá phức tạp đâu.
(đã rút gọn hết khả năng)
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom