Promedio de los últimos valores.

06/04/2010 - 02:04 por Francesca Brasso | Informe spam
Hola, tengo:
De la celda A4 a la celda A116 valores numéricos.
De la celda B4 a la celda B116 valores numéricos y celdas con texto.
De la celda C4 a la celda C116 valores numéricos, celdas con texto y celdas
vacías.
Todos los días se agrega un registro, de modo que mañana la última fila será
la 117 y así sucesivamente.
En la columna A siempre serán números, en la B pueden ser números o texto y
en la C pueden ser números, texto, o quedar celdas vacías.
Necesito encontrar en cualquier momento en cada una de las columnas el
promedio de los 30 últimos valores numéricos.
¿Alguien me podrá ayudar?
Gracias y saludos
Francesca

Preguntas similare

Leer las respuestas

#1 Toño
06/04/2010 - 23:16 | Informe spam
1.- En un módulo ordinario escribe:

Function media(fila%, col&)
Dim hasta&
Application.Volatile
hasta = 0
Do While hasta < 6
If IsNumeric(Cells(fila, col).Value) And Cells(fila, col).Value <> ""
Then
media = media + Cells(fila, col).Value
hasta = hasta + 1
End If
fila = fila - 1
Loop
media = media / 6
End Function

2.- En (p.ej.) A2 escribe: =media(COINCIDIR(9E+99;A4:A100000)+3;1)
3.- Copia/Pega A2 hasta C2

Saludos: AnSanVal
Respuesta Responder a este mensaje
#2 Francesca Brasso
07/04/2010 - 17:52 | Informe spam
Gracias, Héctor, está perfecto.
Saludos
Francesca

"Francesca Brasso" escribió en el mensaje de
noticias news:
Hola, tengo:
De la celda A4 a la celda A116 valores numéricos.
De la celda B4 a la celda B116 valores numéricos y celdas con texto.
De la celda C4 a la celda C116 valores numéricos, celdas con texto y
celdas vacías.
Todos los días se agrega un registro, de modo que mañana la última fila
será la 117 y así sucesivamente.
En la columna A siempre serán números, en la B pueden ser números o texto
y en la C pueden ser números, texto, o quedar celdas vacías.
Necesito encontrar en cualquier momento en cada una de las columnas el
promedio de los 30 últimos valores numéricos.
¿Alguien me podrá ayudar?
Gracias y saludos
Francesca

Respuesta Responder a este mensaje
#3 Francesca Brasso
07/04/2010 - 17:55 | Informe spam
Hola Toño, algo debo haber hecho mal, pero no me resulta, me dan valores
incorrectos y me interesa mucho tener la alternativa con VBA.
¿Que estará mal?
Saludos
Fran.

"Toño" escribió en el mensaje de noticias
news:
1.- En un módulo ordinario escribe:

Function media(fila%, col&)
Dim hasta&
Application.Volatile
hasta = 0
Do While hasta < 6
If IsNumeric(Cells(fila, col).Value) And Cells(fila, col).Value <> ""
Then
media = media + Cells(fila, col).Value
hasta = hasta + 1
End If
fila = fila - 1
Loop
media = media / 6
End Function

2.- En (p.ej.) A2 escribe: =media(COINCIDIR(9E+99;A4:A100000)+3;1)
3.- Copia/Pega A2 hasta C2

Saludos: AnSanVal


Respuesta Responder a este mensaje
#4 Francesca Brasso
07/04/2010 - 20:05 | Informe spam
Hola Héctor, si quisiera poner las fórmulas en las celdas A3, B3 y C3
respectivamente (en vez de en la fila siguiente al último valor) , ¿cómo
serían?.
Saludos
Francesca

"Francesca Brasso" escribió en el mensaje de
noticias news:
Gracias, Héctor, está perfecto.
Saludos
Francesca

"Francesca Brasso" escribió en el mensaje de
noticias news:
Hola, tengo:
De la celda A4 a la celda A116 valores numéricos.
De la celda B4 a la celda B116 valores numéricos y celdas con texto.
De la celda C4 a la celda C116 valores numéricos, celdas con texto y
celdas vacías.
Todos los días se agrega un registro, de modo que mañana la última fila
será la 117 y así sucesivamente.
En la columna A siempre serán números, en la B pueden ser números o texto
y en la C pueden ser números, texto, o quedar celdas vacías.
Necesito encontrar en cualquier momento en cada una de las columnas el
promedio de los 30 últimos valores numéricos.
¿Alguien me podrá ayudar?
Gracias y saludos
Francesca




Respuesta Responder a este mensaje
#5 Héctor Miguel
07/04/2010 - 21:15 | Informe spam
hola, Francesca !

... si quisiera poner las formulas en las celdas A3, B3 y C3 respectivamente
(en vez de en la fila siguiente al ultimo valor) , como serian?...



para la columna [A]:
[A3] =promedio(indice(a:a,coincidir(9e+307,a:a)):indice(a:a,coincidir(9e+307,a:a)-29))

para la columna [B] (y luego la copias a la columna [C])...
[B3] =promedio(indice(b:b,k.esimo.mayor(fila(indice(b:b,4):indice(b:b,coincidir(9e+307,$a:$a)))
*esnumero(indice(b:b,4):indice(b:b,coincidir(9e+307,$a:$a))),30)):indice(b:b,coincidir(9e+307,$a:$a)))

OJO: esta ultima sigue siendo "matricial" (ctrl + shift + enter)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida