Suponiendo que las columnas aparecen en orden de tiempo, la primera fila (por ejemplo) indica que la construcción total a través de cada período fue
0, 0+45 = 45, 45+135 = 180, 180+405 = 585, 585+1010 = 1595, ..., 2230+0 = 2230.
La construcción estaba a la mitad en 2230/2 = 1115. Esto ocurrió durante el período 4, porque al final del período 3 el total fue de 585, al final del período 4 el total fue de 1595 y 585 <= 1115 <1595.
Este parece ser el resultado informado por la columna [Mediana], que proporciona el índice del período (comenzando en 1 a la izquierda).
Puede codificar esto en su idioma favorito . Sin embargo, la tabla es tan pequeña (100 filas) que una hoja de cálculo será conveniente, aunque solo sea para verificar lo que hace más formalmente en Python o lo que sea. Así es como podría verse:
Las primeras tres filas de datos tienen los mismos valores que los suyos. Las siguientes dos filas de datos (rodeadas de líneas en blanco) se eligen más abajo en su tabla. Las últimas cinco filas de datos ejercitan un poco el algoritmo.
(Tenga en cuenta que, como se muestra en las últimas dos líneas de la hoja de cálculo, cómo Excel elige el período posterior cada vez que el medio cae exactamente entre dos períodos. Esta no es necesariamente la respuesta "correcta", pero es válida).
Aquí están las fórmulas en las columnas H: R:
No tienes que escribirlos todos. El único tipo de escritura necesario es:
=H2+A2
en I2. Arrastre esto a través de O2. Esto calcula las sumas acumulativas. Requiere que las columnas A: G estén en orden cronológico.
=O2/2
en P2. Esto encuentra la mitad del total.
=Match(P2,H2:O2,1)
en Q2. Esto indexa la columna donde la construcción estaba a medio completar.
=Offset($A$1:$G$1,0 0, Q2-1, 1, 1)
en R2. Esto obtiene el encabezado de columna correspondiente al índice.
Luego pegue 0
toda la columna H y arrastre I2: R2 a tantas filas como sea necesario.
Esto sirve efectivamente como pseudocódigo para el algoritmo. La parte más complicada será la búsqueda para implementar la MATCH
función de Excel . Pero eso no requiere ninguna habilidad: no es ineficaz buscar cada conjunto de sumas acumulativas secuencialmente (en lugar de con el algoritmo de búsqueda binario preferido) porque estos conjuntos son muy cortos.