Excel - Hoe overtollige waarde sorteren en verwijderen?

Kwestie

Ik heb geprobeerd onze patià «ntgegevens te sorteren in ons dagelijkse werk in het laboratorium, zoals hieronder:

 "sample external no" "barcode" "assay" 4 321456 amf 9 125487 amf 10 155886 amf 15 162533 amf 45 154878 amf 48 124569 amf 1 750122 bupo 5 156453 bupo 6 145896 bupo 10 155886 bupo 11 114456 bupo 13 357456 bupo 15 162533 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 canno 1 750122 metamfo 2 112563 metamfo 15 162533 metamfo 28 112254 metamfo 45 154878 metamfo 48 124569 metamfo 

waar deze gegevens nog half klaar zijn temidden van het sorteren anders is de eerste kolom lukraak waarbij ik het einde van het sorteren op basis van kolom A in stijgende volgorde wil bereiken maar dat is op basis van kolom C. Als er een waarde is in kolom A herhaald met verschillende waarde in de kolom CI zou het als gesorteerd willen hebben

 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 bupo, canno 6 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 

Als dit het geval is, zou het vinden van het monster vrij eenvoudig zijn. Kan je me alsjeblieft helpen.

Oplossing

Hier is de macro die het zou doen:

 Sub sortAndRemove () Dim lRow As Long Dim sExtNum As String Dim sBarCode As String Cells.Select Selection.Sort _ Key1: = Range ("A2"), _ Order1: = xlAscending, _ Key2: = Range ("B2"), _ Order2: = xlAscending, _ Key3: = Range ("C2"), _ Order3: = xlAscending, _ Header: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Cellen (lRow, "A") sBarCode = Cellen (lRow, "B") Do While (Cellen (lRow, "A") "" ) Als cellen (lRow + 1, "A") = sExtNum en (cellen (lRow + 1, "B") = sBarCode) Then If Cells (lRow, "C") "" Then Cells (lRow, "C") = Cellen (lRow, "C") & ", " & Cellen (lRow + 1, "C") Rijen (lRow + 1). Verwijder Else Cellen (lRow, "C") = Cellen (lRow + 1, "C ") Rijen (lRow + 1). Verwijder einde Indien anders lRow = lRow + 1 sExtNum = Cellen (lRow, " A ") sBarCode = Cellen (lRow, " B ") Einde indien luscellen.Selecteer Selectie.Sort _ Sleutel1: = Range ("C2"), _ Order1: = xlAscending, _ Key2: = Range ("A2"), _ Order2: = xlAscending, _ Key3: = Range ("B2"), _ Order3: = xlAscending, _ Header: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal Range (" A2 "). Selecteer End Sub 

Notitie

Bedankt aan rizvisa1 voor deze tip op het forum.

Vorige Artikel Volgende Artikel

Top Tips