Macro para hacer una formula según los datos de una columna

Hola,

Tengo una hoja con los siguientes datos

A B

1 234 10

2 234 10

3 234 50

4 567 60

5 567 10

6 567 10

7 567 10

Lo que necesito es obtener la cantidad de veces que repite las filas con datos iguales, es decir, que me quedara asi,

C D
234 2

567 3

Ya tengo una formula (SUM(IF(FREQUENCY(MATCH(B1:B3,0),MATCH(B1:B3,0))>0,1)) para sacar el numero de repeticiones, sin embargo me pasa que solo puedo hacerlo con el primer valor en A, cuando empieza con un valor diferente a ese no hace nada.

Pensé en hacer una macro en VB que fuera recorriendo la columna A para que cada vez que topara con un valor diferente comenzara la formula cambiara su valores por ejemplo para que par 567 quedara algo asi SUM(IF(FREQUENCY(MATCH(B4:B7,0),MATCH(B4:B7,0))>0,1))

Si alguien pudiera ayudarm!!

1 respuesta

Respuesta
1

Esta fórmula habría que situarla en, por ejemplo, D1, y copiarla y pegarla hasta D7:

=SUM(SIGN(FREQUENCY(IF($A$1:$A$7=A1,$B$1:$B$7),IF($A$1:$A$7=A1,$B$1:$B$7))))

Irá diciendo la cantidad de valores distintos en la columna B para el valor de la columna A de la fila donde esté la fórmula.

Se trata de una fórmula matricial.

De antemano, gracias por contestar, sin embargo como funcionaria si tengo mas de 7 filas? Y se desconoce la cantidad de filas que se tiene pueden ser 10 o 15 o 256

Gracias nuevamente y disculpas por la tardanza

No entiendo el problema, la fórmula funciona como cualquier otra de Excel. Lo único que hay que hacer es sustituir $A$7 y $B$7 por las últimas filas reales, por ejemplo si son 100 filas sería $A$100 y $B$100.

Y si luego se añaden o se quitan filas entre medias, la fórmula se ajustará ella misma, como cualquier otra. El único problema sería si se añadiesen filas al final: en ese caso habría que modificar la fórmula a mano, aunque se podría usar un rango dinámico si fuese realmente necesario.

Nuevamente, disculpe la tardanza
Termine aplicando un do while para que se aplicara la formula, y la formula cambie por un count, si esta algo confuso de explicar por aquí y no tengo el ejemplo a la mano.
Gracia!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas