¿Se puede contabilizar cuantas celdas hay repetidas?

Supongamos que tengo 3 columnas, tal como se presenta en la imagen. Columna A, Columna B y Columna C.

En la columna A tengo una lista de nombres los cuales van de la A2 hasta la A1000; pero después de aplicar el formato condicional

Nos damos cuenta que algunas celdas cambian de colores, como se presenta a continuación

Necesito una macro que sea capaz de mostrarme en la columna C, cuantos nombres hay repetidos.

Respuesta
1

¿A mí no me queda claro qué es exactamente lo que quieres obtener en la "columna C"?

A) ¿Quieres qué aparezca en "cada celda" de la columna C la cantidad de veces que se repite el nombre que está en esa fila?

B) ¿Quieres en "una sola celda" de la columna C el numero total de nombres que se repitieron?

C) ¿Quieres en "una sola celda" de la columna C el numero total de registros repetidos?

Ojo, la pregunta B y C son muy parecidas, pero no iguales.

Especifica exactamente que esperas obtener.

Andy

Hola Andy de antemano gracias por el interés de ayudar. Mira esto es lo que quiero que haga la macro.

Como podrás observar en la columna A, hay varios nombres que se repiten, necesito que en la columna B aparezca que cada uno de los nombres que se repite y en la columna C las veces que ese nombre se repite.

En el ejemplo podemos ver que en la columna A  el nombre de ana está 5 veces, el nombre de pedro 2 veces, el nombre de claudia 3 veces y el nombre de jose 1 vez. Necesito que al darle clic al botón aparezca la columna B y C tal como se muestra en la imagen. De antemano muchas gracias

Parece que ya te pudieron ayudar

2 respuestas más de otros expertos

Respuesta
1

Si quieres saber cuáles nombres están repetidos, entonces:

Sub Mostrar_Repetidos()
  Dim c As Range, dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  dic.comparemode = vbTextCompare
  For Each c In Range("A2", Range("A" & Rows.Count).End(3))
    If dic.exists(c.Value) Then Range("C" & Rows.Count).End(3)(2).Value = c.Value
    dic(c.Value) = Empty
  Next
End Sub

Si quieres saber la cantidad de repetidos:

Sub Contar_Repetidos()
  Dim c As Range, dic As Object, n As Long
  Set dic = CreateObject("Scripting.Dictionary")
  dic.comparemode = vbTextCompare
  For Each c In Range("A2", Range("A" & Rows.Count).End(3))
    If dic.exists(c.Value) Then n = n + 1
    dic(c.Value) = Empty
  Next
  Range("C2").Value = n
End Sub

Buenos días Dante, pues mira, esto es lo que quiero que haga la macro.

Como puedes observar en el ejemplo en la columna A se puede observar que el nombre de ana aparece 5 veces, pedro 2 veces, claudia 3 veces y jose 1 vez.

Puedes hacerlo con una tabla dinámica.

Dante no me sale los valores al frente de cada nombre

¿Viste mi imagen?

También tienes que arrastrar el nombre al área de valores.

¡Gracias! funciona perfectamente

Me alegra ayudarte, G racias! Por comentar.

Respuesta
1

Ya te respondieron correctamente, pero vengo a aportar un fórmula que sirve para contar repetidos:

{=CONTAR.SI(A2:A1000;A2:A1000)} --> para que sirva como formula matricial luego de escribirla tienes que presionar Ctrl + Mayus + Entrar

Gracias pero no funciona.

Lo probé en una base de datos mía y funciona.. hasta me di cuenta que sin la introducción matricial funciona igual.

Te dejo otra formula para saber cuantas veces se repite cada uno

=CONTAR.SI.CONJUNTO($A$2:$A$1000;$A$2:$A$1000;$A$2:$A$1000;A2)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas