Fazlalık nasıl sıralanır ve silinir?

Konu

Hasta verilerimizi laboratuvardaki günlük çalışmalarımızda şu şekilde sıralamaya çalışıyordum:

 "harici örnek yok" "barkod" "tahlil" 4 321456 amf 9 125487 amf 10 155886 amf 15 162533 amf 45 154878 amf 48 124569 bupo 10 155886 bupo 11 114456 bupo 6 356356 bupo 10 155886 bupo 11 114456 bupo 13 357456 bupo 10 155886 bupo 17 789456 bupo 18 158456 bupo 45 154878 bupo 48 124569 bupo 1 750122 canno 5 156453 canno 8 159456 canno 20 145698 canno 25 123456 canno 45 154878 canno 48 124569 cano 1 750122 metamfo 2 112563 metamfo 

Bu verinin yarısının hala sıralamada yapıldığı durumda, aksi takdirde ilk sütun, artan sırada sırayla A sütununa göre sıralamayı bitirmek istediğim yerde olur, ancak bu, C sütununa dayalıdır. CI sütununda farklı değerlerle tekrarlanan A sütunu,

 4 321456 amf 9 125487 amf 10 155886 amf, bupo, 15 162533 amf, bupo, metamfo 45 154878 amf, bupo, canno, metamfo 48 124569 amf, bupo, canno, metamfo 1 750122 bupo, canno, metamfo 5 156453 6up3 145896 bupo 11 114456 bupo 13 357456 bupo 17 789456 bupo 18 158456 bupo 8 159456 canno 20 145698 canno 25 123456 canno 2 112563 metamfo 28 112254 metamfo 

Bunu yaparsa, numuneyi bulmak oldukça kolay olacaktır. Lütfen bana yardım edebilir misin.

Çözüm

İşte bunu yapacak makro:

 Alt sortAndRemove () Dim lRow Uzun Dim gibi Uzun s sExtNum String Olarak Dim sBarCode String Hücreleri Olarak.Seçimi Seçin.Sort _ Key1: = Range ("A2"), _ Order1: = xlAscending, _ Key2: = Range ("B2"), _ Order2: = xlAscending, _ Key3: = Range ("C2"), _ Order3: = xlAscending, _ Başlık: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Oryantasyon: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Hücreler (lRow, "A") sBarCode = Hücreler (lRow, "B") Yaparken (Hücreler (lR "" "") ) Eğer Hücreler (lRow + 1, "A") = sExtNum Ve (Hücreler (lRow + 1, "B") = sBarCode) Sonra Hücreler ise (lRow, "C") "" Sonra Hücreler (lRow, "C") = Hücreler (lRow, "C") & ", " & Hücreler (lRow + 1, "C") Satırlar (lRow + 1) .Delete Başka Hücreler (lRow, "C") = Hücreler (lRow + 1, "C ") Satırlar (lRow + 1) .Eğerse Sonunda Sil Sonu lRow = lRow + 1 sExtNum = Hücreler (lRow, " A ") sBarCode = Hücreler (lRow, " B ") Döngü Hücrelerse Bitir.Seçimi Seçin.Sort _ Key1: = Range ("C2"), _ Order1: = xlAscending, _ Key2: = Range ("A2"), _ Order2: = xlAscending, _ Key3: = Range ("B2"), _ Order3: = xlAscending, _ Başlık: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Oryantasyon: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption: = xlSortNormal A2 "). End Sub seçin 

Not

Forumdaki bu ipucu için rizvisa1 'e teşekkür ederiz.

Önceki Makale Sonraki Makale

En Ipuçları