Contador de valores en un rango

En una tabla de excel tengo, en un rango (pongamos A1-N40) una serie de nombres. Pues bien, estoy buscando la forma (o fórmula) para listar los valores y las veces que se repiten; bien sea en una pestaña nueva o en la misma pestaña al final de la misma.

Por ejemplo: Carlos 20 (veces), Luis 18, Mateo 13, y así todos los valores que aparezcan en el rango.

Una vez encontré una macro VBA que lo hacía, pero la perdí y no consigo encontrarla.

Gracias por cualquier ayuda.

1 respuesta

Respuesta
1

Imaginemos que el rango de nombres los coloques en col P a partir de fila 1.

El rango de datos ya sabemos que se encuentra en A1:N40

Entonces en P1 la fórmula será: =CONTAR.SI($A$1:$N$40;P1)

Solo resta que la arrastres hasta el fin de la lista en col P

Perdona, pero no entiendo bien la respuesta. ¿Cómo coloco el rango en la columna P?.

Pongamos un ejemplo más fácil, tengo en A1="Pepe" A2="Luis" A3="Pepe"; B1="Juan", B2="Mateo", B3="Luis". Yo busco una función o fórmula que me de el resultado siguiente (en la columna C o donde sea): Pepe (2), Luis (2), Juan (1), Mateo (1).

Gracias por la respuesta igualmente.

En col P yo colocaría todos los nombres, por ej a partir de fila 1:

Pepe

Luis

Y así con el resto.

Entonces la fórmula hace mención al nombre de col P y arrastrando hacia abajo tendrías todos los valores.

Si no querés armar una tabla estas pueden ser las variantes de la misma fórmula:

=CONTAR.SI($A$1:$N$40;"Pepe") y así para el resto de los nom bres

3ra opción: =CONTAR.SI($A$1:$N$40;A1) esta te dará el total del nombre que tengas en A1.

Es decir, que la función es CONTAR. SI y el criterio lo tomas a gusto.

Sdos

Elsa

De A1 a N40 hay un montón de nombres diferentes como para ir variando el criterio de la fórmula CONTAR.SI, para eso casi igual contarlos con BUSCAR (Ctrl+B).

Lo de colocar todos los nombres en P... pues como que no sé cómo hacerlo.

Gracias por tu interés, pero seguro que había una macro para hacer lo que yo planteo, que únicamente indicando el rango, me sacaba los resultados y las veces que se repetían.

Si, claro que se puede con una macro... pero tu comentario solicitaba ...estoy buscando la forma (o fórmula) ... por eso te pasé la fórmula.

No finalices aún que ya te preparo la macro.

Sdos!

Perdona si no me expresé mejor. Agradezco mucho el esfuerzo que haces para ayudarme y el tiempo que me dedicas.

Gracias de corazón. Y no cierro aún.

Aquí va la macro que la tenés que colocar en un módulo. Trabaja sobre la hoja activa, es decir desde donde la llames.

Sub ContarRepeticiones()
'x Elsamatilde
'cuenta las repeticiones de valores en rango A1:N40 - AJUSTAR REF
'la tabla resultado la coloca en col S:R - limpio de valores anteriores AJUSTAR REF
Application.ScreenUpdating = False
Range("S:R") = ""
Range("A1").Select
filx = 1 'fila en col S
'recorre las 40 filas 'AJUSTAR CANT
For i = 1 To 40
 'recorre las 14 col
 For j = 1 To 14 'AJUSTAR CANT
 Cells(i, j).Select
 'solo cuento si no está vacía
 If ActiveCell <> "" Then
 'si es el 1er valor no lo busco, lo copio directamente
 If filx = 1 Then
 Cells(filx, 19) = ActiveCell.Value
 Cells(filx, 20) = 1
 filx = filx + 1
 Else
 'busco el nbre en col S
 Set busco = Range("S:S").Find(ActiveCell, LookIn:=xlValues, lookat:=xlWhole)
 'si el nbre ya esta incremento el contador
 If Not busco Is Nothing Then
 busco.Offset(0, 1) = busco.Offset(0, 1) + 1
 'sino agrego registro
 Else
 Cells(filx, 19) = ActiveCell.Value
 Cells(filx, 20) = 1
 filx = filx + 1
 End If
 End If
 End If
 Next j
Next i
MsgBox "Fin del proceso."
End Sub

Dejé marcado dónde tenés que ajustar las ref xq se me hace que tu modelo real no es exactamente como lo planteaste ;(

Muchísimas gracias.

La solución de la macro es, simplemente, perfecta (además con notas por si quiero modificar el rango); y todas las respuestas, en general, muy detalladas y pacientes.

Te agradezco muchísimo el esfuerzo y la dedicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas