Eliminación de valores de texto duplicados (Microsoft Excel)
Todo el mundo se encuentra con la necesidad en un momento u otro: eliminar entradas duplicadas de una lista de entradas de texto. Suponga que tiene los valores de texto en la columna A de una hoja de trabajo y se ejecutan en unas 500 filas. Si desea eliminar cualquier duplicado de la lista, es posible que esté buscando la forma más sencilla de hacerlo.
De forma manual, puede utilizar el filtrado de datos para determinar los valores únicos.
Asegúrate de que la columna tenga una etiqueta en la parte superior y luego selecciona una celda de la columna. Elija datos | Filtro | Filtro avanzado o, en Excel 2007, muestre la pestaña Datos de la cinta y haga clic en Avanzado en el grupo Ordenar y filtrar. Utilice los controles del cuadro de diálogo resultante para especificar que desea copiar los valores únicos en otra ubicación que especifique.
También puede utilizar una fórmula para determinar manualmente los duplicados en la lista. Ordene los valores en la columna y luego ingrese la siguiente fórmula en la celda B2:
=IF(A2=A1,"Duplicate","")
Copie la fórmula en todas las celdas de la columna B que tengan un valor correspondiente en la columna A. Seleccione todos los valores en la columna B y presione Ctrl + C. Utilice el cuadro de diálogo Pegado especial para pegar solo los valores en las mismas celdas seleccionadas. Ahora ha convertido las fórmulas en sus resultados. Ordene las dos columnas de acuerdo con el contenido de la columna B, y todas sus filas duplicadas estarán en un área. Elimine estas filas y tendrá su lista completa de valores únicos.
Cualquiera de estos métodos manuales es rápido y sencillo, pero si tiene que eliminar habitualmente valores duplicados de una columna, una macro puede ser más su estilo. La siguiente macro se basa en el filtrado de datos avanzado, al igual que el método manual anterior:
Sub CreateUniqueList() Dim rData As Range Dim rTemp As Range Set rData = Range(Range("a1"), Range("A65536").End(xlUp)) rData.EntireColumn.Insert Set rTemp = rData.Offset(0, -1) rData.AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=rTemp, _ Unique:=True rTemp.EntireColumn.Copy _ rData.EntireColumn Application.CutCopyMode = False rTemp.EntireColumn.Delete Set rData = Nothing Set rTemp = Nothing End Sub
La macro crea una columna temporal, utiliza un filtrado avanzado para copiar los valores únicos en esa columna y luego elimina la columna de datos original.
El resultado son solo valores únicos en la columna A. Si no desea que su macro use la función de filtrado de datos de Excel, entonces la siguiente macro funcionará:
Sub DelDups() Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim J As Integer, K As Integer Application.ScreenUpdating = False Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column 'Start wiping out duplicates For J = ThisRow To (ThatRow - 1) If Cells(J, ThisCol) > "" Then For K = (J + 1) To ThatRow If Cells(J, ThisCol) = Cells(K, ThisCol) Then Cells(K, ThisCol) = "" End If Next K End If Next J 'Remove cells that are empty For J = ThatRow To ThisRow Step -1 If Cells(J, ThisCol) = "" Then Cells(J, ThisCol).Delete xlShiftUp End If Next J Application.ScreenUpdating = True End Sub
La macro funciona en una selección que realiza antes de llamarla. Por lo tanto, si necesita eliminar celdas duplicadas del rango A2: A974, simplemente seleccione ese rango y luego ejecute la macro. Cuando se completa la macro, se eliminan las celdas duplicadas, al igual que cualquier celda en blanco.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2430) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:
link: / excelribbon-Deleting_Duplicate_Text_Values [Eliminando valores de texto duplicados]
.