Como contar ocurrencias de secuencias consecutivas

Brass Contributor

Saludos a todos, tengo el siguiente problema:
Tengo un rango de datos A3:A5641; allí registro en cada celda uno de tres valores: A,B o L.
Necesito contar cuantas veces se produce una ocurrencia consecutiva en alguno de esos valores; es decir cuantas veces ocurre AA; AAA; AAAA y así sucesivamente con cada uno de los 3 valores registrados. No hay combinatoria, es decir no busco contar ALB por ejemplo, solo cada valor, es importante que se cuente sin repeticiones, es decir AAAA es una secuencia única y no debe ser contada como si ocurriera dos veces AA, también debe considerarse que no debe existir un limite, aunque de hecho puede haberlo en el tamaño de la secuencia, es decir AAAAAAAAAAAA, puede ser, aunque repito, es poco probable que se de.
Ya tengo una formula que funciona limitadamente: {=SUMA(SIGNO(SI(FRECUENCIA(SI(Rango=$E$2;FILA(Rango)-CONTAR.SI(DESREF(INDICE(Rango;1);;;FILA(INDIRECTO("1:"&FILAS(Rango))));$E$2));SI(Rango=$E$2;FILA(Rango)-CONTAR.SI(DESREF(INDICE(Rango;1);;;FILA(INDIRECTO("1:"&FILAS(Rango))));$E$2)))>=$C5;FRECUENCIA(SI(Rango=$E$2;FILA(Rango)-CONTAR.SI(DESREF(INDICE(Rango;1);;;FILA(INDIRECTO("1:"&FILAS(Rango))));$E$2));SI(Rango=$E$2;FILA(Rango)-CONTAR.SI(DESREF(INDICE(Rango;1);;;FILA(INDIRECTO("1:"&FILAS(Rango))));$E$2))))))}
El problema es que a mayor cantidad de registros mayor es el tiempo para realizar el calculo. Supongo que tiene que ver con la capacidad de mi equipo: Intel i3, 4mb ram, Windows 7 y Excel 2016 (aunque no veo un consumo exagerado de recursos cuando se ejecuta la formula)
Hay alguna forma de mejorar el tiempo del calculo de la formula con estos recursos o de emplear otra formula o macro? Gracias de antemano por sus comentarios

2 Replies

@a7024782 

Ejemplo en el archivo incluido

Probablemente estoy fuera de tema, pero espero que haya ayudado un poco:).

 

Sugerencia adicional sobre la tabla dinámica

  1. Columna auxiliar con números de línea

Z1: número de línea (título)

E2:E400 =Fila() (Fórmulas)

  1. Mesa dinámica

Campo de línea: punto

1er campo de datos: línea (mostrar como: mínimo)

2do campo de datos: línea (mostrar como: máximo)

3er campo de datos: período (mostrar como: número)

Entonces tienes el primer registro de un período, el último registro del período y el número del período.

 

 

El autor de este texto no conoce este idioma, el texto podría contener errores gramaticales y/o de expresión.

@NikolinoDE  Gracias por la respuesta. Lamentablemente no aplica en este caso usar tablas dinámicas por la configuración que tengo de la hoja, que es mucho mas complicada que una tabla.