Excel - Jak třídit a mazat redundantní hodnotu?

Problém

Snažím se třídit údaje o pacientech v naší každodenní práci v laboratoři, jak je uvedeno níže:

 "vzorek vnější ne" "čárový kód" "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 45 154878 metamfo 28 112254 metamfo 45 154878 metamfo 48 124569 metamfo 

tam, kde jsou tato data napůl hotová uprostřed třídění, bude první sloupec náhodný, kde chci dostat konec třídění na základě sloupce A ve vzestupném pořadí, ale to je na základě sloupce C. Pokud je hodnota v Sloupec A opakovaný s jinou hodnotou ve sloupci CI by si přál, aby byl uspořádán jako

 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 

Pokud se tak stane, nalezení vzorku by bylo poměrně snadné. Můžete mi prosím pomoci.

Řešení

Zde je makro, které by to provedlo:

 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, _ Orientace: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Buňky (lRow, "A") sBarCode = Buňky (lRow, "B") Zatímco (buňky (lRow, "A") " ) Pokud buňky (lRow + 1, "A") = sExtNum A (Buňky (lRow + 1, "B") = sBarCode) Pak Pokud buňky (lRow, "C") "" Pak buňky (lRow, "C") = Buňky (lRow, "C") & ", " & Buňky (lRow + 1, "C") Řádky (lRow + 1) .Delete Else Cells (lRow, "C") = Buňky (lRow + 1, C) ") Řádky (lRow + 1) .Delete End If Else lRow = lRow + 1 sExtNum = Buňky (lRow, " A ") sBarCode = Buňky (lRow, " B ") Konec Pokud 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, _ Orientace: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = Rozsah xlSortNormal, _ DataOption3: = xlSortNormal Range (" A2 ") Vyberte End Sub 

Poznámka

Díky rizvisa1 za tento tip na fóru.

Předchozí Článek Následující Článek

Nejlepší Tipy