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. En realidad, hay varias formas de realizar esta tarea en Excel.
Usando la herramienta Eliminar duplicados
Quizás el método más simple es seleccionar los datos de los que desea eliminar los duplicados y luego mostrar la pestaña Datos de la cinta. Haga clic en la herramienta Eliminar duplicados, en el grupo Herramientas de datos. Excel muestra el cuadro de diálogo Eliminar duplicados.
Lo mejor del cuadro de diálogo Eliminar duplicados es que enumera los nombres de cada columna en sus datos. (La herramienta asume que tiene etiquetas de encabezado en la primera fila de sus datos). Luego, puede asegurarse de que haya una marca de verificación junto a cada columna que desee verificar para ver si hay duplicados. Cuando hace clic en el botón Aceptar, sus datos se analizan y se eliminan las filas duplicadas. (Nuevamente, los duplicados se determinan en función de las columnas seleccionadas en el cuadro de diálogo Eliminar duplicados).
Usando el filtrado de datos
Otro método manual es 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. 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.
Usando una fórmula
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 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.
Usando una macro
Los enfoques manuales son rápidos y fáciles, pero si habitualmente tiene que eliminar valores duplicados de una columna, una macro puede ser más su estilo.
La siguiente macro se basa en el filtrado de datos, al igual que el método manual anterior:
Sub CreateUniqueList() Dim rData As Range Dim rTemp As Range Set rData = Range(Range("a1"), Range("A1048576").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 mucho más corta funcionará:
Sub RemoveDups() Dim rData As Range Set rData = Range(Range("a1"), Range("A1048576").End(xlUp)) rData.RemoveDuplicates Columns:=Array(1), Header:=xlYes End Sub
La clave de esta macro es usar el método RemoveDuplicates, que se basa en una matriz que contiene los números de columna que desea verificar en busca de duplicados. La macro que se muestra aquí opera solo en el contenido de la columna A, pero puede modificarla fácilmente para trabajar con datos en más de una columna. Todo lo que necesita hacer es cambiar rData para que represente el área de datos más grande y luego modificar el parámetro de las columnas para que apunte a las columnas que desea verificar:
rData.RemoveDuplicates Columns:=Array(1,4), Header:=xlYes
Otro enfoque basado en macros es desarrollar su propio código para verificar los valores en el conjunto de datos, de esta manera:
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 (12711) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Deleting_Duplicate_Text_Values [Eliminando valores de texto duplicados]
.