Usar diferentes funciones para un mismo rango de celdas

Necesito vuestra ayuda para ver si puedo hacer lo siguiente. Por ejemplo, tengo hecho el promedio en unas celdas aleatorias (ej: =PROMEDIO(J20;J25)) y quiero también hacer la desviación (ej: =DESVEST(J20;J25)) y así para más funciones que necesite. Pero quiero hacerlo de tal forma que, si yo hago un cambio en las celdas del promedio, (ej: =PROMEDIO(J20;J21)) también me haga el cambio automáticamente en la desviación, etc. ¿Hay alguna forma de hacerlo?

1 respuesta

Respuesta

Puede ser de la siguiente forma

En la celda G20 escribe la fila inicial, por ejemplo: 20

En la celda H20 escribe la fila final, por ejemplo: 25

En la celda I20 escribe la siguiente fórmula:

=PROMEDIO(INDIRECTO("J"&$G$20&":J"&$H$20))

En la celda I21 escribe la fórmula desvest

=DESVEST(INDIRECTO("J"&$G$20&":J"&$H$20))

Cuando cambies el valor en H20, por ejemplo pones un 21, en automático las fórmulas se actualizan con las nuevas celdas


Saludos. Dante Amor

¡Gracias! 

No es exactamente lo que quiero pero es interesante. Lo que me gustaría es hacerlo sin tener que escribir las celdas iniciales ni finales, si no que haga el cambio de la desviación cuando yo cambie manualmente las celdas del promedio.

Ejemplo: Cuando cambio el =PROMEDIO(A1:A8) a =PROMEDIO(A1;A3:A5), que la desviación cambie también a los valores de las nuevas celdas del promedio (A1;A3:A5).

 

¿Alguno que me pueda ayudar?

Estaba revisando otra posible solución, pero por fórmula no funcionan.

Probablemente se tendría que hacer una macro, pero no sé quieras una macro

¡Gracias! 

Prefiero no liarme con macros, si no se puede por fórmula nada.

Mencionaste que no querías con macros, pero intenta con la siguiente macro.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A9")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.HasFormula Then
            a = Target.Formula
            x1 = InStr(1, a, "(")
            x2 = InStr(1, a, ")")
            x = Mid(a, x1 + 1, x2 - x1 - 1)
            Target.Offset(1, 0).Formula = "=STDEV(" & x & ")"
        End If
    End If
End Sub

Cambia en la macro "A9" por la celda en la que vas a poner la fórmula del promedio. La macro te pondrá en la celda de abajo la fórmula de DESVEST.


Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Prueba si te funciona.

¿Pudiste probar la macro?

La macro ayuda en la parte que solicitaste.

¡Gracias! 

La probé, sí funciona pero no me sirve porque en cada hoja excel tengo que hacer el promedio y la desviación en diferentes celdas y si tengo que ir ajustando la macro tardo más que en hacer la desviación manualmente. De cualquier manera, gracias.

Si más adelante encuentras alguna otra opción no dudes en decírmela. Si hubiera alguna forma de extraer las referencias de las celdas o sustituir una fórmula por otra sería lo óptimo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas