¿Excel Vba como Buscar datos Repetidos en una Columna?

Como le podría hacer para buscar datos repetidos en una columna y que me muestre en una hoja nueva una lista donde el primero sea el mas repetido, el segundo menos repetido y asi sucesivamente..

Si mi columna tiene 10 datos hacia abajo.. Ejemplo

Esto puede funcionar a partir de la celda que yo seleccione.. Puede ser la A1, o B1 o C1

Columna B

Hola

Hola

Adiós

Adiós

Bye

Bye

Hola

Hola

Adiós

Hp

Lista

hola = 4

adiós= 3

bye = 2

hp=1

Respuesta
2

¿Puede ser con fórmulas o necesitas una macro?

Si es así, indica x favor tu versión Excel. Además confirma si se debe ejecutar al seleccionar alguna celda de encabezado (A1, B1, etc)

Hola .. Seria una macro.. Excel 2010 , se podría desde la celda que seleccione?

saludos!..

Insertá un Módulo en el Editor de macros y allí copiá esto:

Sub resumenRepeticiones()
'x Elsamatilde
'prepara lista ordenada por > cant de repeticiones
Application.ScreenUpdating = False
'se copia la col de la celda activa
colx = ActiveCell.Column
ActiveCell.EntireColumn.Copy
'se pega en Hoja2, col A
 Sheets("Hoja2").Select
 Range("A1").Select
 ActiveSheet.Paste
'se controla si hay datos
If ActiveSheet.Columns("A:A").Rows.Count < 3 Then Exit Sub
'se quitan duplicados
Range("$A$1:$A$" & Range("A65536").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlYes
'se coloca fórmula en col B (2), previamente se limpia de valores anteriores
Range("B:B") = ""
colx = colx - 2
Range("B2").Select
 ActiveCell.FormulaR1C1 = "=+COUNTIF(Hoja1!C[" & colx & "],RC[-1])"
'se completa toda la col
 Range("B2").Select
 Selection.AutoFill Destination:=Range("B2:B" & Range("A65536").End(xlUp).Row)
'se guardan solo valores
 Range("B2:B" & Range("A65536").End(xlUp).Row).Select
 Selection.Copy
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
'se ordena x la col B, de > a <
 Range("A2").Select
 ActiveWorkbook.Worksheets("Hoja2").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("Hoja2").Sort.SortFields.Add Key:=Range("B2:B" & Range("A65536").End(xlUp).Row), _
 SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets("Hoja2").Sort
 .SetRange Range("A1:B" & Range("A65536").End(xlUp).Row)
 .Header = xlYes
 .MatchCase = False
 .Orientation = xlTopToBottom
 .SortMethod = xlPinYin
 .Apply
 End With
 Application.CutCopyMode = False
Range("A1").Select
End Sub

Desde cualquier celda de la col que necesites, podés llamar a la macro o ejecutar algún botón asociado a ella.

Nota: estoy dejando el resumen en la Hoja2... dejá el nombre de tu hoja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas