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

#6 AnSanVal
08/04/2010 - 01:00 | Informe spam
Hola Francesca.

¡Tienes razón!
No se de donde saque que eran los 6 últimos valores.


Donde puse...

Do While hasta < 6

... debes poner...

Do While hasta < 30

Saludos: Antonio.
Respuesta Responder a este mensaje
#7 Francesca Brasso
08/04/2010 - 03:23 | Informe spam
Estupendo, héctor, gracias.
Saludos
Francesca

"Héctor Miguel" escribió en el mensaje de
noticias news:
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
#8 Francesca Brasso
08/04/2010 - 03:30 | Informe spam
Antonio, tampoco anduvo bien. Sin embargo aunque no entiendo tu código
cambié (por intuición) también la línea...

media = media / 6

por ...

media = media / 30

y con eso la celda [A2] devuelve la respuesta correcta, pero las [B2] y [C2]
no. Repiten lo mismo de [A2].
(Antes también repetían lo mismo de [A2])


Saludos
Francesca

"AnSanVal" escribió en el mensaje de noticias
news:%
Hola Francesca.

¡Tienes razón!
No se de donde saque que eran los 6 últimos valores.


Donde puse...

Do While hasta < 6

... debes poner...

Do While hasta < 30

Saludos: Antonio.

Respuesta Responder a este mensaje
#9 AnSanVal
09/04/2010 - 11:41 | Informe spam
Hola Francesca.


cambié (por intuición) también la línea...
media = media / 6
por ...
media = media / 30
y con eso la celda [A2] devuelve la respuesta correcta...



Correcto (es el mismo caso) está claro que la edad no perdona. ;-(


... pero las [B2] y [C2] ... Repiten lo mismo de [A2].

Revisaré (y comentaré) el código.

Saludos: Antonio.
Respuesta Responder a este mensaje
#10 AnSanVal
09/04/2010 - 12:07 | Informe spam
Hola Francesca.

Aquí tienes el código corregido y comentado:

Function media(fila%, col&) ' argumentos: fila y columna de comienzo.
Dim hasta&
Application.Volatile ' Actualiza los resultados si modificas los valores.
hasta = 0 ' tope del conteo hasta 30 (contador).
Do While hasta < 30 ' ejecuta hasta sumar 30 números.
If IsNumeric(Cells(fila, col).Value) And _
Cells(fila, col).Value <> "" Then ' si el valor es un número...
media = media + Cells(fila, col).Value ' incrementa la suma.
hasta = hasta + 1 ' incrementa el contador.
End If
fila = fila - 1 ' decrementa la fila a leer.
Loop
media = media / 30 ' promedio.
End Function


Respecto a devolver el mismo valor en B2 y C2, ... cada fórmula en cada
celda es:
[A2] =media(COINCIDIR(9E+99;A4:A100000)+3;1)
[B2] =media(COINCIDIR(9E+99;B4:B100000)+3;2)
[C2] =media(COINCIDIR(9E+99;C4:C100000)+3;3)


Disculpa el inconveniente.

Saludos: Antonio.
************************************

"Francesca Brasso" escribió en el mensaje
news:
Antonio, tampoco anduvo bien. Sin embargo aunque no entiendo tu código
cambié (por intuición) también la línea...

media = media / 6

por ...

media = media / 30

y con eso la celda [A2] devuelve la respuesta correcta, pero las [B2] y
[C2] no. Repiten lo mismo de [A2].
(Antes también repetían lo mismo de [A2])


Saludos
Francesca
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida