Lọc danh sách duy nhất trong 1 bảng

Liên hệ QC

hoangminhtien

Thành viên gắn bó
Tham gia
29/2/08
Bài viết
1,660
Được thích
2,190
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

  • Loc duy nhat.xls
    20 KB · Đọc: 97
đây là 1 bài của anh NDU na ná giống cái mà bạn cần
 

File đính kèm

  • Sapxep_1hangdoc.xls
    18 KB · Đọc: 126

File đính kèm

  • Loc duy nhat.xls
    34 KB · Đọc: 126
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

  • Loc duy nhat (2).rar
    11 KB · Đọc: 77
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

  • ko loc dc.xlsx
    8.5 KB · Đọc: 11
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

  • Loc duy nhat (mang)2007.xlsx
    12.9 KB · Đọc: 22
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

  • Loc.xls
    30 KB · Đọc: 47
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom