SOLVED

Mejorar formula para determinar una racha

Brass Contributor

Saludos comunidad, en el archivo adjunto tengo una formula como esta: {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))))))} para determinar las ocurrencias consecutivas de un evento determinado (rachas), es decir me gustaría saber cuantas veces consecutivas ha ocurrido el evento "rebote", por ejemplo; y tabular los resultados; es decir cuantas veces ha ocurrido 2,34 veces etc. La formula funciona, pero mi equipo tiene limitaciones de memoria y tarda mucho en dar el resultado. Me gustaria mejorarla o cambiarla para que fuera mas rapido el calculo.

Tengo excel 2016 en windows 7

6 Replies

@a7024782 

Por lo que pude entender, su fórmula calcula la cantidad de ocurrencias consecutivas de un evento determinado, pero el cálculo lleva mucho tiempo debido a las limitaciones de memoria en su computadora. Una forma de mejorar el rendimiento de la fórmula podría ser utilizar una fórmula matricial con las funciones SI y FRECUENCIA. Esto le permite calcular el número de ocurrencias consecutivas de un evento sin usar tanta memoria. Otra opción podría ser usar una macro VBA para hacer el cálculo. Esto le permitiría escribir un código más eficiente que puede usar la potencia de procesamiento de su computadora.

Una sugerencia para mejorar el rendimiento de tu fórmula podría ser utilizar una fórmula matricial con las funciones SI y FRECUENCIA. Por ejemplo, si tus datos están en la columna A y quieres contar el número de ocurrencias consecutivas del valor “rebote”, podrías utilizar la siguiente fórmula matricial:

{=MAX(FRECUENCIA(SI(A1:A10="rebote",FILA(A1:A10)),SI(A1:A10<>"rebote",FILA(A1:A10))))}
Esta fórmula calcula la frecuencia de ocurrencias consecutivas del valor “rebote” en el rango A1:A10 y devuelve el valor máximo. Para ingresar una fórmula matricial, debes presionar Ctrl+Shift+Enter en lugar de solo Enter.

Este enfoque debería ser más eficiente que usar funciones SI y INDIRECTO anidadas y puede ayudar a mejorar el rendimiento de tu cálculo. Puedes ajustar el rango y los criterios en la fórmula para que coincidan con tus datos.

 

*El archivo no se abrió.

 

¡Espero que esto ayude!

Gracias por su respuesta. Efectivamente quiero contar el número de ocurrencias consecutivas del valor “rebote” y su formula hace eso, de hecho ya había utilizado una similar. El problema se presenta en que no solamente se busca el mayor numero de ocurrencias consecutivas de "rebote" sino, conformar una tabla que donde se cuente las veces que ocurrió 2, 3,4,5 y así sucesivamente, no solamente para el evento rebote, sino para otros 4. Lamentablemente no pudo abrir el archivo para observar esta situación.
best response confirmed by Hans Vogelaar (MVP)
Solution

@a7024782 

Si entiendo correctamente, desea contar la cantidad de veces que ocurren 2, 3, 4, 5, etc. ocurrencias consecutivas de "rebote" en el rango A1:A10. Una forma es usar una fórmula de matriz con la función FRECUENCIA y la función SI. Aquí hay un ejemplo de cómo puede contar la cantidad de veces que ocurren dos eventos de "rebote" consecutivos:

{=SUMA((FRECUENCIA(SI(A1:A10="rebote",FILA(A1:A10)),SI(A1:A10<>"rebote",FILA(A1:A10)))=2)*1) }
Para contar la cantidad de veces que ocurren 3 "rebotes" consecutivos, simplemente cambie el valor 2 en la fórmula anterior a 3. Para contar la cantidad de veces que ocurren 4 "rebotes" consecutivos, cambie el valor 2 a 4 y así sucesivamente.

 

Recuerde que esta es una fórmula de matriz y debe presionar Ctrl + Shift + Enter en lugar de simplemente presionar Enter para ingresarla en una celda.

 

Todavía no he abierto tu archivo por motivos de seguridad personal. Las sugerencias se derivan del texto dado.

Gracias, voy a hacer las pruebas...
Magnifico!....funciona muy bien y los calculos son rapidos
I am glad that I could help you
¡Le deseo un éxito continuo con Excel!
1 best response

Accepted Solutions
best response confirmed by Hans Vogelaar (MVP)
Solution

@a7024782 

Si entiendo correctamente, desea contar la cantidad de veces que ocurren 2, 3, 4, 5, etc. ocurrencias consecutivas de "rebote" en el rango A1:A10. Una forma es usar una fórmula de matriz con la función FRECUENCIA y la función SI. Aquí hay un ejemplo de cómo puede contar la cantidad de veces que ocurren dos eventos de "rebote" consecutivos:

{=SUMA((FRECUENCIA(SI(A1:A10="rebote",FILA(A1:A10)),SI(A1:A10<>"rebote",FILA(A1:A10)))=2)*1) }
Para contar la cantidad de veces que ocurren 3 "rebotes" consecutivos, simplemente cambie el valor 2 en la fórmula anterior a 3. Para contar la cantidad de veces que ocurren 4 "rebotes" consecutivos, cambie el valor 2 a 4 y así sucesivamente.

 

Recuerde que esta es una fórmula de matriz y debe presionar Ctrl + Shift + Enter en lugar de simplemente presionar Enter para ingresarla en una celda.

 

Todavía no he abierto tu archivo por motivos de seguridad personal. Las sugerencias se derivan del texto dado.

View solution in original post