Lọc không trùng của 3 cột và Sort

Liên hệ QC

LuuAnh980

Thành viên tiêu biểu
Tham gia
28/9/22
Bài viết
452
Được thích
104
Giới tính
Nữ
Chào các anh chi!!!!
Em có file muôn nhờ các anh chị lọc không trùng của 3 cột và sau khi lọc xong thì sort từ nhỏ đến lớn luôn ạ.
Trong 3 cột có một số dòng rống, thì bỏ qua ạ.
Trong file em có ví dụ ạ.
 

File đính kèm

  • Loc.xlsx
    103.2 KB · Đọc: 16
Sao code sort không đúng anh @Zl: 0933707265 ơi, sao Đơn hàng 2761, 2926, 2950 sao lại nằm dưới 2937,2990.
Em đã chỉnh code lại Sort theo Đơn hàng rồi.
AnhZL.png
Bài đã được tự động gộp:

 

File đính kèm

  • Loc.xlsb
    28.2 KB · Đọc: 0
Upvote 0
Thử cách này coi thế nào...
 

File đính kèm

  • Loc3Cot.xlsm
    111.1 KB · Đọc: 12
Upvote 0
Code của anh @Tống Văn Đệ , muốn lọc qua sheet khác thì chỉnh tên sheet lại phải không anh?
Bài đã được tự động gộp:

Code của anh @Hoàng Tuấn 868 chạy hơi lâu, và số mã anh cứ để nguyên trạng, đừng cho thành 3 số.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao code của anh @Tống Văn Đệ , em muốn lọc qua sheet khác, em chỉnh sheet như này :
Mã:
Sub LocKhongTrung3Cot()
    
    'Xoa du lieu cu
    ClearOld
    
    'Lap danh sach duy nhat moi
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No""")
        Sheet9.Range("H4").CopyFromRecordset .Execute("Select f1,f2,f11 From [Sheet3$E2:O] Group by f1,f2,f11 ")
    End With

End Sub
thì bị lỗi này:
LoiVD.png
mong các anh chị nào biết chỉ em với.
 
Upvote 0

File đính kèm

  • Loc.xlsb
    75.4 KB · Đọc: 6
Upvote 0
Code bác em mới xem qua, cũng chưa hiểu rõ lắm nhưng có góp ý thế này, nếu chưa phù hợp thì bác bỏ qua nha:
Không nên tách sort và loại trùng ra 2 phần. Như thế sẽ phải lặp nhiều hơn (có thêm vòng for loại trùng), và phía trên, vòng for để sort phải xử lý cả những phần tử trùng. Trong khi mình có thể không cần quan tâm tới những phần tử trùng này
Ý tưởng của em là gộp loại trùng vào trong vòng 'for k' đầu tiên luôn, nếu đã có trong dic thì bỏ qua vấn đề sort luôn (không quan tâm tới nó)
Nếu chưa có trong dic thì mới cho chạy vào vòng 'for i' để sort. Tuy nhiên cũng không nên for i=1 mà nên là for i=k+1 để hạn chế bớt vòng lặp dư thừa.
Em chưa viết, mà chỉ nghĩ như vậy thôi!
 
Upvote 0
Code bác em mới xem qua, cũng chưa hiểu rõ lắm nhưng có góp ý thế này, nếu chưa phù hợp thì bác bỏ qua nha:
Không nên tách sort và loại trùng ra 2 phần. Như thế sẽ phải lặp nhiều hơn (có thêm vòng for loại trùng), và phía trên, vòng for để sort phải xử lý cả những phần tử trùng. Trong khi mình có thể không cần quan tâm tới những phần tử trùng này
Ý tưởng của em là gộp loại trùng vào trong vòng 'for k' đầu tiên luôn, nếu đã có trong dic thì bỏ qua vấn đề sort luôn (không quan tâm tới nó)
Nếu chưa có trong dic thì mới cho chạy vào vòng 'for i' để sort. Tuy nhiên cũng không nên for i=1 mà nên là for i=k+1 để hạn chế bớt vòng lặp dư thừa.
Em chưa viết, mà chỉ nghĩ như vậy thôi!
Chân thành cảm ơn bạn nhé, lâu rồi không đụng đến, lấy code từ ngày xưa (hồi mới lọ mọ vào code) sửa lại cho khớp với dữ liệu của bạn này thôi mà. Có viết mới đâu.
 
Upvote 0
Chân thành cảm ơn bạn nhé, lâu rồi không đụng đến, lấy code từ ngày xưa (hồi mới lọ mọ vào code) sửa lại cho khớp với dữ liệu của bạn này thôi mà. Có viết mới đâu.
Em cũng mới chỉ ý tưởng thôi, không biết viết ra có cấn chỗ nào không :D
Nếu bác có thời gian thì thử xem, giúp người nhưng cũng là giúp mình vận động đầu óc tí nó cũng vui
 
Upvote 0
Em cũng mới chỉ ý tưởng thôi, không biết viết ra có cấn chỗ nào không :D
Nếu bác có thời gian thì thử xem, giúp người nhưng cũng là giúp mình vận động đầu óc tí nó cũng vui
Ngày xưa mới lọ mọ thì đầu tiên thử cách xắp xếp thứ tự nhỏ đến to, sau đó tìm hiểu thêm về Dictionary thì lại viết tiếp đoạn lọc không trùng rồi ghép hai món lại thì nó ra vậy đó bạn.
 
Upvote 0
Cám ơn anh @Hoàng Tuấn 868, code bài mới đã nhanh(0,0715) nhưng chổ số mã em nguyên dạng như vầy :01,02,03....., thì của anh là 1,2,3... Mong anh chỉnh lại code dùm em, và muốn lọc qua sheet2 thì chỉnh code thê nào anh
 
Upvote 0

File đính kèm

  • Loc.xlsb
    74.8 KB · Đọc: 3
Upvote 0
tới anh @Hoàng Tuấn 868 , em có Test code của anh, em thấy vầy:
1/ em xóa dữ liệu lọc đi, và nhấn nút lọc thì nhảy ra MsgBox thời gian -. nhấn OK ->ra dữ liệu loc..Anh chỉnh dùm khi nhấn nút lọc thì ra luôn dữ liệu loc.
2/ Cột số mã em có số mã này: "05/09" thì khi lọc nó lại ra là 05-Sep mặc dù em đã định dạng "05/09" là Text. Mong anh xem giúp.
 
Upvote 0
1/ em xóa dữ liệu lọc đi, và nhấn nút lọc thì nhảy ra MsgBox thời gian -. nhấn OK ->ra dữ liệu loc..Anh chỉnh dùm khi nhấn nút lọc thì ra luôn dữ liệu loc.
1/ Đã bỏ Msgbox.
2/ Cột số mã em có số mã này: "05/09" thì khi lọc nó lại ra là 05-Sep mặc dù em đã định dạng "05/09" là Text. Mong anh xem giúp.
2/ Ở máy tính mình không thấy như vậy nên không biết bị sao để sửa.
 

File đính kèm

  • Loc .xlsb
    74.8 KB · Đọc: 2
Upvote 0
Sory lộn tiệm
 
Upvote 0
Web KT

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

Back
Top Bottom