Promedio con fechas

Feliz navidad. No doy con esto: Tengo la columna "A" con fechas y la columna "B", con números, quiero hallar el promedio de la fila "B" por meses descartando las celdas en blanco o con ceros.

1 Respuesta

Respuesta
1
Necesito más aclaraciones, la columna A son fechas, pero la columna B que son números como vamos a hallar promedio de meses aclarame la relación entre la columna A y B y donde están los ceros o las celdas en blanco (En que columna)
Perdona, el promedio lo quiero hallar de la columna "B" que son cantidades que se van
Produciendo en las fechas de la columna "A"
Aver si te he entendido tu en tu columna A tienes diferentes fechas que se repiten meses como esto (01/08/2008, 15/08/2008...) y a cada fecha le corresponde un numero en la columna B, algunas celdas de Columna B son 0 y primero quieres descartar las fechas en las cuales tu dato es 0 que solo queden fechas con datos en columna B para eso haces un autofiltro y eliges personalizar pones la condición "mayor que" y en el valor pones 0 y ya solo tienes las que poseen algún dato mayor de 0
La fórmula de promedio es =PROMEDIO(B1:B50) siendo la letra la columna y el numero la fila
A ver si te vale
Lo siento, tendría que ser por fórmula, porque tengo más columnas donde también hayo
El promedio, teniendo como base la columna de fechas, desde el 1 de enero hasta el 31 de diciembre. Trato de extraer por meses los promedios de las demás columnas. Un saludo
He echo una macro que hace lo siguiente:
1º Crea un Autofiltro en la columna de fechas con los criterios siguientes: "Mayor o igual que" y "Menor o igual que" para que pongas 01/01/08 y 31/01/08 Esto lo tendrás que hacer 12 veces (poner esta lineas de código modificando los valores a 1 de cada mes y 31 para que estén todas las fechas incluidas)
2º He creado 12 hojas con los nombres de los meses
3º La macro recoge todos los datos que hay en las columnas B y F (tu puedes cambiar el rango de datos a tu interés
4º Los copia y los pega cada uno en su mes
5º He elegido una celda donde hace el promedio de las filas y columnas que tu quieras
6º Se repite 12 veces llevando a cada mes los datos que le corresponden
Ya sabes como funciona una macro pues con pulsar un botón lo tienes echo todo de una vez, tan solo debes crear las hojas con sus nombres y corregir las fechas, celdas y columnas donde quieres extraer tus datos y donde llevarlos.
Te dejo el código y para cualquier consulta me pides aclaración. De todas formas te la explico linea a linea
Sub PromFe()
'
' PromFe Macro
' Macro grabada el 01/01/2009
'Seleccionamos la columna de fechas
Columns("A:A").Select
'Ponemos un Autofiltro con las condiciones de rango entre fechas
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">=01/01/2008(Esta la tendras que cambiar 12 veces y volver a copiarla)", Operator:=xlAnd _
, Criteria2:="<=31/01/2008"
'Aquí tendras que poner el rango que quieres copiar de tus datos
Range("A2:F3").Select
'Copia el rango de datos elegido
Selection.Copy
'Selecciona la Hoja "ENERO"
Sheets("Enero").Select
'Nos situamos en la celda donde comenzará a pegar
Range("A2").Select
'Pega los datos copiados correspondiente al mes de Enero
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'Nos situamos en una celda vacía que al encabezado hemos puesto titulo de Promedio
Range("H3").Select
'Ponemos la formula y elegimos respecto a esta celda la posición de los rangos que debe hayar el promedio siendo la "R"(Rows=fila) y la "C"(Column=Columnas)
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-1]C[-6]:R[-1]C[-2],RC[-6]:RC[-2])"
'Vuelve a la Hoja1 para seguir recogiendo datos
Sheets("Hoja1").Select
'Coloca el criterio para el mes siguiente
Selection.AutoFilter Field:=1, Criteria1:=">=01/02/2008(Este para el inicio de Febrero)", Operator:=xlAnd _
, Criteria2:="<=29/02/2008 ( Y este para el final)"
'Elegimos el rango que tiene que copiar
Range("A4:F5").Select
'Copiamos el rango seleccionado
Selection.Copy
'Vamos a la Hoja "FEBRERO"
Sheets("Febrero").Select
Nos situamos en la celda A2 para pegar los datos
Range("A2").Select
'Volvemos a pegar los datos
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'Elegimos la celda donde queremos que aparezca el promedio
Range("H3").Select
'Ponemos la formula de PROMEDIO y seleccionamos las filas y columnas de las celdas de las cuales sacrá el resultado (siempre respecto a nuestra celda)
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-1]C[-6]:R[-1]C[-2],RC[-6]:RC[-2])"
'Volvemos a la Hoja1 para recoger otro mes y así sucesivamente hasta los 112 meses
Sheets("Hoja1").Select
End Sub
Es fácil solo copiar y pegar las lineas de código que hay entre meses e ir cambiando las fechas porque el rango de datos sera el mismo, Mira a ver si te soluciona tu problema y me cuentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas