Excel - ¿Cómo ordenar y eliminar el valor redundante?

Problema

He estado tratando de ordenar los datos de nuestros pacientes en nuestro trabajo diario en el laboratorio como se muestra a continuación:

 "muestra externa no" "código de barras" "ensayo" 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 357456 bupo 15 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 15 15 45 78 metamfo de las mujeres de la mano de las personas de la fuerza de la acción. metamfo 

donde estos datos se realizan a medias todavía en medio de la clasificación, de lo contrario, la primera columna será aleatoria, en la que deseo finalizar el ordenamiento en base a la columna A en orden ascendente, pero eso es en base a la columna C. Si hay un valor en la columna A se repite con un valor diferente en la columna CI desea que se clasifique como

 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, metamfo 1 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 

Si esto lo hace, encontrar la muestra sería bastante fácil. Podrías ayudarme.

Solución

Aquí está la macro que lo haría:

 Sub sortAndRemove () Dim lRow As Long Dim sExtNum As String Dim sBarCode As String Cell. Seleccione Selection.Sort _ Key1: = Range ("A2"), _ Order1: = xlAscending, _ Key2: = Range ("B2"), _ Order2: = xlAscending, _ Key3: = Range ("C2"), _ Order3: = xlAscending, _ Header: = xlSí, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientación: = xlTopToBottom, _ DataOption1: = xlSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal lRow = 2 sExtNum = Células (lRow, "A") sBarCode = Cells (lRow, "B") Do While (Células (lRow, "A") "" ) Si las celdas (lRow + 1, "A") = sExtNum y (Celdas (lRow + 1, "B") = sBarCode) Luego las celdas (lRow, "C") "" Luego las celdas (lRow, "C") = Células (lRow, "C") & ", " & Células (lRow + 1, "C") Filas (lRow + 1) .Elimine Células Else (lRow, "C") = Células (lRow + 1, "C ") Filas (lRow + 1) .Elimine el fin si finaliza lRow = lRow + 1 sExtNum = Cells (lRow, " A ") sBarCode = Cells (lRow, " B ") End If Loop Cells.Select Selection.Sort _ Key1: = Rango ("C2"), _ Order1: = xlAscending, _ Key2: = Range ("A2"), _ Order2: = xlAscending, _ Key3: = Range ("B2"), _ Order3: = xlAscending, _ Header: = xlSí, _ OrderCustom: = 1, _ MatchCase: = False, _ Orientación: = xlTopToBottom, _ DataOption1: = xSortNormal, _ DataOption2: = xlSortNormal, _ DataOption3: = xlSortNormal Range A2 "). Seleccione End Sub 

Nota

Gracias a rizvisa1 por este consejo en el foro.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos