„Excel“ - kaip rūšiuoti ir ištrinti nereikalingą vertę?

Problema

Bandžiau surūšiuoti paciento duomenis mūsų kasdieniame darbe laboratorijoje, kaip nurodyta toliau:

 "pavyzdys išorinis ne" "brūkšninis kodas" "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 15 162533 metamfo 28 112254 metamfo 45 154878 metamfo 28 112254 metamfo 

jei šie duomenys dar pusiau daromi, nes kitaip surenkant kitaip, pirmasis stulpelis bus nesėkmingas ten, kur aš noriu gauti rūšiuoti pagal A stulpelį didėjančia tvarka, bet tai yra C stulpelio pagrindu. A stulpelis, pakartotas skirtingomis vertėmis kolonoje CI, norėtų, kad jis būtų rūšiuojamas kaip

 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 

Jei taip bus, atrasti pavyzdį būtų gana paprasta. Prašau ar gali man padėti.

Sprendimas

Čia yra makro, kuris tai padarys:

 „Sub sortAndRemove“ () „Dim lRow As Long Dim“ „SExtNum“ kaip eilutė „Dim sBarCode“ kaip eilutės elementai.Pasirinkite Selection.Sort _ Key1: = intervalas („A2“), _ Užsakymas1: = xlAscending, _ Key2: = intervalas („B2“), _ Užsakymas2: = xlAscending, _ Key3: = intervalas („C2“), _ užsakymas3: = xlAscending, _ Header: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Ląstelės (lRow, "A") sBarCode = Ląstelės (lRow, "B") Ar nors (langeliai (lRow, "A") "" ) Jei langeliai (lRow + 1, "A") = sExtNum ir (ląstelės (lRow + 1, "B") = sBarCode) Tada, jei langeliai (lRow, "C") "" tada langeliai (lRow, "C") = Ląstelės (lRow, "C") & ", " ir ląstelės (lRow + 1, "C") Eilutės (lRow + 1). Ištrinti kitas ląsteles (lRow, "C") = ląstelės (lRow + 1, C) ") Eilutės (lRow + 1) .Pašalinti pabaigą Jei kitas lRow = lRow + 1 sExtNum = Ląstelės (lRow, " A ") sBarCode = Ląstelės (lRow, " B ") Pabaiga Jei Loop Cells.Select Selection.Sort _ Key1: = Intervalas ("C2"), _ užsakymas1: = xlAscending, _ Key2: = intervalas ("A2"), _ užsakymas2: = xlAscending, _ Key3: = intervalas ("B2"), _ Užsakymas3: = xlAscending, _ Header: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal, _ DataOption3: = xlSortNormal Range („ A2 ") Pasirinkite End Sub 

Pastaba

Ačiū rizvisa1 už šį patarimą forume.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai