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