¿Cómo eliminar filas duplicadas y mantener solo los valores más altos en Excel?
Por ejemplo, tienes una tabla de compras en Excel como se muestra en la primera captura de pantalla. Ahora necesitas eliminar filas duplicadas basándote en la columna Fruta y mantener los valores más altos de las frutas correspondientes en la columna Cantidad, como se muestra en la segunda captura de pantalla. ¿Se te ocurre alguna solución? Este artículo compartirá dos trucos para resolverlo.
Eliminar filas duplicadas y mantener solo los valores más altos con VBA
Eliminar filas duplicadas y mantener solo los valores más altos con Kutools para Excel
Eliminar filas duplicadas y mantener solo los valores más altos con VBA
Supongamos que tienes una tabla como se muestra en la siguiente captura de pantalla. Y este método presentará una macro VBA para eliminar filas duplicadas basándose en una columna específica y mantener solo los valores más altos en otra columna en Excel. Por favor, sigue estos pasos:
1. Presiona simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haz clic en Insertar > Módulo, y pega el siguiente código en la nueva ventana del Módulo que se abre.
VBA: Eliminar filas duplicadas y mantener los valores más altos
Public Sub DelDupes()
Dim xFilterRg As Range
Dim xCriteriaRg As Range
Dim xAddress As String
Dim xSUpdate As Boolean
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xFilterRg = Application.InputBox("Please select a range:", "Kutools for Excel", xAddress, , , , , 8)
If xFilterRg Is Nothing Then Exit Sub
Set xFilterRg = Application.Intersect(ActiveSheet.UsedRange, xFilterRg)
If xFilterRg Is Nothing Then Exit Sub
On Error GoTo 0
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xCriteriaRg = ActiveSheet.Cells(1, xFilterRg.Column + xFilterRg.Columns.Count).Resize(2)
xCriteriaRg.Resize(1).Offset(1).Formula = "=COUNTIF(" & xFilterRg(2, 1).Address & ":" & _
xFilterRg(2, 1).Address(False, False) & "," & _
xFilterRg(2, 1).Address(False, False) & ")>1"
With xFilterRg
.Sort key1:=xFilterRg.Cells(1, 1).Offset(0, 1), order1:=xlDescending, Header:=xlYes
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=xCriteriaRg
.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.Parent.ShowAllData
End With
xCriteriaRg.Clear
Application.ScreenUpdating = xSUpdate
End Sub
3. Presiona la tecla F5 o haz clic en el botón Ejecutar para ejecutar esta VBA.
4. Ahora aparecerá un cuadro de diálogo. Por favor, selecciona las columnas en las que eliminarás las filas duplicadas y mantendrás los valores más altos, y haz clic en el botón Aceptar.
En nuestro caso, eliminaremos las filas duplicadas por la columna Fruta y mantendremos los valores más altos en la columna Cantidad; por lo tanto, selecciono la columna Fruta y la columna Cantidad como se muestra en la captura de pantalla anterior.
Luego verás que las filas duplicadas se han eliminado basándose en la columna Fruta, y los valores más altos de las frutas correspondientes se han mantenido en la columna Cantidad. Ver captura de pantalla:
Notas:
(1) El rango especificado debe comenzar con la columna por la cual eliminarás las filas duplicadas.
(2) Esta VBA solo puede mantener los valores más altos en la columna justo detrás de la columna por la cual eliminaste las filas duplicadas.
(3) Esta VBA no funciona en Microsoft Excel 2007.
Eliminar filas duplicadas y mantener solo los valores más altos con Kutools para Excel
La VBA anterior puede que no sea lo suficientemente fácil para algunos usuarios, y solo puede mantener los valores más altos en la columna posterior a la columna de criterios. Pero la utilidad Combinar Filas Avanzado de Kutools para Excel te ayudará a resolver fácilmente este problema.
Kutools para Excel - Cargado con más de 300 herramientas esenciales para Excel. ¡Disfruta de funciones de IA permanentemente gratis! ¡Descarga ahora!
1. Selecciona la tabla en la que eliminarás las filas duplicadas y mantendrás los valores más altos (selecciona A1:C24 en nuestro caso), y haz clic en Kutools > Combinar y Dividir > Combinar Filas Avanzado.
2. En el cuadro de diálogo Combinar Filas Basadas en Columna que se abre, configura lo siguiente:
(1) Selecciona la columna Fruta (por la cual eliminarás las filas duplicadas) y luego haz clic en el botón Clave Principal;
(2) Selecciona la columna Cantidad (en la cual mantendrás los valores más altos) y luego haz clic en Calcular > Máximo.
(3) Especifica reglas de combinación para otras columnas según sea necesario.
3. Haz clic en el botón Aceptar . Luego verás que todas las filas duplicadas se han eliminado basándose en la columna Fruta y solo los valores máximos de las frutas correspondientes se mantienen en la columna Cantidad. Ver captura de pantalla:
La utilidad Combinar Filas Avanzado de Kutools para Excel puede combinar fácilmente filas por una columna y luego calcular otras columnas basadas en esta columna también, como Suma, Contar, Máximo, Mínimo, Producto, etc. ¡Haz clic para obtener una prueba gratuita de 60 días, sin limitaciones!
Demostración: eliminar filas duplicadas y mantener solo los valores más altos en Excel
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!