Excel - Crear función en Vba para calcular la frecuencia de varias fechas

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular la frecuencia de varias fechas

Publicado por Ruben (5 intervenciones) el 29/12/2018 05:11:24
Fecha Despacho:

22/10/2018
30/10/2018
05/11/2018
05/11/2018
13/11/2018
20/11/2018
29/11/2018
30/11/2018
11/12/2018

Frecuencia sea 6.25 días
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por Ruben (5 intervenciones) el 29/12/2018 14:54:10
Mi consulta busca promediar las fechas, lo que buscó es crear function en vba. que promedie.

Inicialmente lo vengo calculando =PROMEDIO(K.ESIMO.MENOR(O1:O9,FILA(INDIRECTO("2:"&CONTAR(O1:O9))))-K.ESIMO.MENOR(O1:O9,FILA(INDIRECTO("1:"&CONTAR(O1:O9)-1))))


Pero la idea es reemplazar esta fórmula por una función en VBA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por wordexperto.com (2803 intervenciones) el 29/12/2018 16:43:02
Rubén, la fórmula que usas no es un promedio. Es una resta de dos valores: El penúltimo menor menos el menor. Estás restando los días que hay entre los dos últimos valores, el 30 de octubre menos el 22 de octubre. Ocho días.
Quieres hacer con vba, algo que no entiendo. ¿Para qué quieres restar los días que hay entre los dos últimos valores? ¿Para qué usas esa fórmula, cuando hay más de un millón más sencillas? ¿Qué coño quieres hacer? ¿Qué tiene que ver esto que haces con los promedios o con las frecuencias? ¿Sabes lo que estás haciendo y para qué?
Espero ansioso, por simple curiosidad, tus respuestas, los detalles y, a ser posible, un ejemplo real.
https://wordexperto.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por Ruben (5 intervenciones) el 29/12/2018 17:02:10
Lo que pasa es que tengo n proyectos, con distintas fechas de entrega.
Por cada proyecto ver cual es su avance, según fecha de entrega.
Gracias por tu ayuda...

22/10/2018
30/10/2018 8 días
05/11/2018 6 días
05/11/2018 0 días
13/11/2018 8 días
20/11/2018 7 días
29/11/2018 9 días
30/11/2018 1 días
11/12/2018 11 días

Promedio 6.25 días
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por wordexperto.com (2803 intervenciones) el 29/12/2018 18:34:08
Ahora te entiendo. Perdona Rubén.
Esta es la fórmula, con columna auxiliar, que puedes usar para grabar la macro, o directamente, con fórmula matricial.
https://wordexperto.com/


Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por wordexperto.com (2803 intervenciones) el 29/12/2018 18:55:31
Es igual que la fórmula que tu usabas: =PROMEDIO(K.ESIMO.MENOR(O1:O9,FILA(INDIRECTO("2:"&CONTAR(O1:O9))))-K.ESIMO.MENOR(O1:O9,FILA(INDIRECTO("1:"&CONTAR(O1:O9)-1)))), solo que habías olvidado añadir el detalle de que es matricial.
https://wordexperto.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por Ruben (5 intervenciones) el 29/12/2018 18:59:43
Hasta esa parte ya esta el calculo, Pero el tema es que son varios proyectos. Adjunto doc.
En una tabla dinámica sera posible???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por Ruben (5 intervenciones) el 30/12/2018 03:12:49
Asigne una condicional a la columna Diferencia. Quedo de la siguiente forma.
Gracias por todo.
Ahora, esta lógica llevarlo a una consulta en SQL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Crear función en Vba para calcular el Promedio de varias fechas

Publicado por Andres Leonardo (1583 intervenciones) el 03/01/2019 14:59:39
expero aun sirva

lo que hice fue hacer una UDF se pasa el rango de las fechas ...

saque el bucle de aca y le hice una mofficiacion.

SAludos


http://excel-consulting.blogspot.com/2008/11/funcin-con-un-rango-como-parmetro.html


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Public Function MediaRango(Rango As Range) As Double
Dim intRowsInRange As Integer
Dim intColsInRange As Integer
Dim intRow As Integer
Dim intCol As Integer
Dim intItems As Integer
 
' Obtenemos el número de filas y columnas del rango seleccionado
MediaRango = 0
intintems = 0
intRowsInRange = Rango.Rows.Count
intColsInRange = Rango.Columns.Count
 
' Recorremos las filas del rango
For intRow = 1 To intRowsInRange - 1
 
' Recorremos las columnas del rango
    For intCol = 1 To intColsInRange
 
    MediaRango = MediaRango + Rango.Cells(intRow + 1, intCol).Value - Rango.Cells(intRow, intCol).Value
    intItems = intItems + 1
 
    Next intCol
 
Next intRow
 
' Calculamos la media del rango
MediaRango = MediaRango / intItems
 
End Function
mediarango
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar