Excel - kuidas liigitada ja kustutada üleliigne väärtus?

Probleem

Olen püüdnud meie patsiendiandmeid meie igapäevases töös laboris sorteerida järgmiselt:

 "proovi väline no" "vöötkood" "test" 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 15 162533 metamfo 28 112254 metamfo metamfo 

kui need andmed on pooleldi veel sorteerimise ajal veel pooleli, siis on esimeses veerus juhuslik olukord, kus ma soovin, et sortimise lõpetamine A-veeru alusel kasvavas järjekorras, kuid see on C-veeru alusel. veerg A, mida korratakse erineva väärtusega veerus CI, soovib, et seda sorteeritaks

 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 

Kui see nii on, oleks valimi leidmine üsna lihtne. Kas sa saaksid mind aidata.

Lahendus

Siin on makro, mis seda teeks:

 Sub sortAndRemove () Dim lRow as Long Dim sExtNum kui string Dim sBarCode stringrakkudena.Vali 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 = Rakud (lRow, "A") sBarCode = Rakud (lRow, "B") Kas ajal (lahtrid (lRow, "A") "" ) Kui lahtrid (lRow + 1, "A") = sExtNum ja (lahtrid (lRow + 1, "B") = sBarCode) Seejärel, kui lahtrid (lRow, "C") "" siis lahtrid (lRow, "C") = Lahtrid (lRow, "C") & ", " ja lahtrid (lRow + 1, "C") read (lRow + 1) .Edake teised rakud (lRow, "C") = lahtrid (lRow + 1, C) ") Rida (lRow + 1) .Lõpeta lõpp Kui muud lRow = lRow + 1 sExtNum = Rakud (lRow, " A ") sBarCode = Rakud (lRow, " B ") Lõpeta, kui Loop Cells.Select Selection.Sort _ Key1: = 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, _ DataOption3: = xlSortNormal Range (" A2 ") Valige End Sub 

Märge

Täname rizvisa1 selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited