Excel - Kako sortirati i izbrisati suvišnu vrijednost?

Problem

Pokušavam razvrstati naše podatke o pacijentima u svakodnevnom radu u laboratoriju kako slijedi:

 "uzorak vanjski ne" "barkod" "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 162533 bupo 17 789456 bupo 18 158456 bupo 45 154878 bupo 48 124569 bupo 1 750122 kanno 5 156453 canno 8 159456 canno 20 145698 canno 25 123456 canno 45 154878 canno 48 124569 canno 1 750122 metamfo 2 112563 metamfo 45 metamfo 

gdje su ti podaci napola izrađeni usred sortiranja, inače će prvi stupac biti slučajan gdje želim završiti razvrstavanje na temelju stupca A uzlaznim redoslijedom, ali to je na temelju stupca C. Ako postoji vrijednost u Stupac A koji se ponavlja s drugom vrijednošću u stupcu CI želi da bude sortiran kao

 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 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 

Ako se to dogodi, pronalaženje uzorka bi bilo prilično jednostavno. Možeš li mi molim te pomoći.

Riješenje

Ovo je makro koji će to učiniti:

 Sub sortAndRemove () Dim lRow As Long Dim sExtNum As String Dim sBarCode Kao String Cells.Select Selection.Sort _ Key1: = Range ("A2"), _ Order1: = xlAscending, _ Key2: = Range ("B2"), _ Narudžba2: = xlAscending, _ Key3: = Raspon ("C2"), _ Redoslijed3: = xlAscending, _ Zaglavlje: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Ćelije (lRow, "A") sBarCode = Ćelije (lRow, "B") Do while (ćelije (lRow, "A") "" ) Ako ćelije (lRow + 1, "A") = sExtNum i (ćelije (lRow + 1, "B") = sBarCode) Onda, ako su ćelije (lRow, "C") "" Zatim ćelije (lRow, "C") = Ćelije (lRow, "C") & ", " & Stanice (lRow + 1, "C") Redovi (lRow + 1) .Izbrisi ostale ćelije (lRow, "C") = Ćelije (lRow + 1, "C ") Redovi (lRow + 1) .Izbrisati Kraj Ako Else lRow = lRow + 1 sExtNum = Ćelije (lRow, " A ") sBarCode = Ćelije (lRow, " B ") Završi ako petlje ćelije. = Raspon ("C2"), _ Narudžba1: = xlAscending, _ Tipka 2: = Raspon ("A2"), _ Narudžba2: = xlAscending, _ Tipka 3: = Raspon ("B2"), _ Order3: = xlAscending, _ Header: = xlYes, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal Range (" A2 ") 

Bilješka

Zahvaljujući rizvisa1 za ovaj savjet na forumu.

Prethodni Članak Sljedeći Članak

Top Savjeta