Macros para encontrar y eliminar valores duplicados en una columna



Uso de la función CountIf() para encontrar duplicados en una columna

Problema: identificar los valores duplicados en la siguiente columna de valores:

Encontrar valores duplicados


La siguiente macro encuentra valores duplicados en una columna
  • Utiliza la función CountIf() para identificar los valores duplicados
  • La función CountIf es parte de la biblioteca de Excel
    • WorksheetFunction.CountIf
Sub duplicados()
'Identificar valores duplicados en una columna
Dim rango As Range
Dim celda As Range

    Set rango = Selection
    
    For Each celda In rango
        If WorksheetFunction.CountIf(rango, celda.Value) > 1 Then
            celda.Offset(0, 1).Value = "duplicado"
        End If
    Next celda

End Sub

Resultado de la macro anterior. Encuentra los valores duplicados en la selección dada:
Resultado de encontrar valores duplicados en una columna


Maceo para eliminar valores duplicados en una columna utilizando la función CountIf()

Tabla de entrada:


Sub eliminarDuplicados()
Dim i As Long
Dim numFilas As Long

numFilas = Cells(Rows.Count, 1).End(xlUp).Row

For i = numFilas To 1 Step -1
    If WorksheetFunction.CountIf(Range("A:A"), Cells(i, 1)) > 1 Then
        Rows(i).Delete
    End If
Next i

End Sub

Tabla resultante después de ejecutar la macro anterior:



Macro para eliminar duplicados en una columna utilizando el método RemoveDuplicates del Objeto Range

Problema: eliminar valores duplicados encontrados en la columna A de la siguiente tabla:



Sub eliminarDuplicados()
'Utiliza el método RemoveDuplicates del Objeto Range
Dim rango As Range

    Set rango = Range("A:A")
    rango.RemoveDuplicates Columns:=Array(1), Header:=xlYes

End Sub

Resultado al ejecutar la macro anterior: