jueves, 6 de septiembre de 2012

Promedio Acumulado Dinámico

"Tengo una tabla de ventas mensuales desde 2010. Cada mes introduzco la cifra correspondiente a dicho mes. Me gustaría calcular el promedio de ventas acumulados hasta el último mes del que haya introducido un dato y que me lo compare con el promedio acumulado al mismo mes de los años anteriores".

Para solucionar este caso vamos a utilizar las funciones PROMEDIO, DESREF y CONTAR. Partimos del siguiente ejemplo:

Lo que queremos conseguir es que en el rango O4:O6 nos aparezcan los promedios de ventas acumulados hasta agosto (ya que es el último mes introducido) de 2012, 2011 y 2010. En el momento que introduzcamos el dato correspondiente a las ventas de septiembre de 2012 que recalcule automáticamente el promedio acumulado hasta dicho mes para los 3 ejercicios.

Lo primero que debemos resolver es cuántos meses hemos ingresado. Para ello utilizaremos la función CONTAR. Si nos colocamos en la celda O4 y escribimos la fórmula: =CONTAR(B4:M4) el resultado será 8, ya que son las celdas con contenido (los datos de ventas de los 8 meses).

Para calcular el Promedio excel necesita un rango. En nuestro caso el rango será desde la celda B4 y hasta la última celda que tiene contenido. Con la función CONTAR hemos obtenido el número de celdas que debemos promediar. Haciendo uso ahora de la función DESREF solucionamos el problema. La fórmula definitiva en la celda O4 es:

=PROMEDIO(B4:DESREF(A4;;CONTAR($B$4:$M$4)))

Para terminar copiamos la fórmula en las celdas O5 y O6 y problema resuelto:


4 comentarios:

  1. Estimado, tengo una tabla identica, pero lo único que quiero es que me sume los 2 últimos valores. Es decir, O3 dice "Variación" en vez de "Promedio", y cada mes voy metiendo más datos según pasa el tiempo, y lo que deseo es que me sume las dos últimas celdas según vayan ingresándose los datos. Como no soy muy ducho en excel lo hago con 'SI( y "n" cantidad de condiciones para que vaya sumando dichas celdas, pero se me agota la capacidad de la fórmula y siento que me pone la tabla muy pesada. De hecho, tengo otra tabla en donde tengo que ir sumando los últimos 12 meses omitiendo el último rango... es decir, si pongo un valor en diciembre 12, me sumará (horizontalmente como esta tabla) desde noviembre de 2011 hasta noviembre de 2012. Y tengo una horripilante fórmula =si( con muchas otras =si( dentro por 12 condiciones. Quisiera aprender a utilizar estas fórmulas (desref combinadas con coincidir y contar, pero no las he entendido bien). ¡ah! y otra última fórmula super muchos =si( que tengo para 12 rangos de suma, es que tengo que ir sumando el acumulado del año. Es decir, si es febrero, debo sumarlo con enero, si es marzo, los 3 primeros meses y así. Todo, con =SI(. Me he vuelto un abusador de esa fórmula.

    Por lo demás, excelente su blog. Saludos.

    ResponderEliminar
    Respuestas
    1. Respecto a la primera cuestión, sumar las dos últimas celdas que se introduzcan, se resuelve con la siguiente fórmula (aplicado al ejemplo de este post):
      =SUMA(DESREF(A4;;CONTAR($B$4:$M$4)-1):DESREF(A4;;CONTAR($B$4:$M$4)))
      Respecto a la siguiente pregunta, no acabo de entender bien qué es lo que necesitas. Por favor mándame un ejemplo a kiko.rial@gmail.com e intento ayudarte. Un saludo

      Eliminar
  2. Me gustaría saber cómo se hace para sacar el promedio de los últimos 3 valores. Es decir si tengo una celda en blanco en alguna, en los ejemplos es B, contar el valor del mes anterior.

    ejemplos: dado estos valores 13 42 50 36 B 25 el promedio buscado sería 37
    dado estos valores 13 42 B 36 B 25 el promedio buscado sería 34,33
    y así con cualquier combinación de espacio en blanco.

    ResponderEliminar
    Respuestas
    1. Hola Alberto. Perdón por la tardanza pero este mes es muy intenso en el Balneario de Mondariz y no me deja mucho tiempo para otras ocupaciones :-)
      Creo que lo que buscas lo puedes encontrar en el siguiente link:
      http://jldexcelsp.blogspot.com.es/2013/12/calcular-el-promedio-de-los-ultimos-n.html
      Un saludo

      Eliminar