Officefull.es

Excel, word, powerpoint, android

Fechas (Dates) Excel Noviembre 30, 2008

Fórmulas – Funciones y SIFECHA 
(DateDif ) Excel

Años-Meses-Días

¿Fechas absolutas o fechas relativas…?

La historia se remonta a los años 1982-1983, cuando nacieron las Hojas de cálculo Lotus 1-2-3 por Lotus Development Corporation, hoy día de IBM (International Business Machines). Las Hojas de cálculo Lotus 1-2-3 controlan años desde 1900 a 2078 considerando 1900 como año bisiesto con lo cual Microsoft Excel tuvo que tratar el año 1900 como bisiesto por motivos de compatibilidad.

  • Desarrollo archivo Excel -SIFecha-Funcion Cheap Pearson-Funcion Edad y _Edad por: Hector Miguel Orozco Diaz
  • Formula sobre Fechas por: Xavier Budet Graco
  • Microsoft Word por: Hector Miguel Orozco Diaz
  • Anotaciones May
  • Información Adicional

Desarrollo en fechas Archivo de Excel By Héctor Miguel Orozco Díaz

El siguiente archivo desarrolla una serie de fórmulas y funciones con las que podéis cotejar sus diferencias, además de poder saber el porque de la diferencia en días entre dichas fórmulas y funciones.

Formulas y funciones VBA desarrolladas

SIFECHA

La Función SIFECHA (DateDif) de lotus 1-2-3 fue integrada en MS Office Excel por motivos de Compatibilidad. Esta Función presenta varias inconsistencias como el mal manejo de los meses de febrero tal y como comentábamos al inicio del artículo.

Age [Chip Pearson]

Presenta varias inconsistencias puesto que toma en cuenta el día inicial para el cálculo de los días, pero llegada a unas determinadas fechas estas se proyectan.

Edad [Hector Miguel Orozco ]

Le faltan ligeros ajustes para adaptarla a nuestras necesidades, dependiendo de como se quiera realizar el cálculo entre dos Fechas…

Funcion VBA

Funcion VBA  Function Edad(inicial As Date, final As Date) As String ' [hmod] ' Dim a As Integer, m As Integer, d As Integer, _ x As Boolean, y As Boolean, z As Boolean a = Evaluate("datedif(" & CLng(inicial) & "," & CLng(final) & ",""y"")") m = Evaluate("datedif(" & CLng(inicial) & "," & CLng(final) & ",""ym"")") d = Evaluate("datedif(" & CLng(inicial) & "," & CLng(final) & ",""md"")") x = Day(inicial) = Day(DateSerial(Year(inicial), Month(inicial) + 1, 0)) y = Day(final) = Day(DateSerial(Year(final), Month(final) + 1, 0)) z = Day(inicial) > Day(final) If x And y And z Then d = 0: m = m + 1 If d And z Then d = IIf(x, 0, 1) + Day(final) - Day(inicial) + _ Day(DateSerial(Year(inicial), Month(inicial) + 1, 0)) d = d + (d = 31) If m = 12 Then m = 0: a = a + 1 Edad = a & "-" & m & "-" & Abs(d) End Function  Nombre Definido: _Edad  ba=sifecha(!a3,!b3,"y")+0*hoy()  bm=sifecha(!a3,!b3,"ym")+0*hoy()  bd=sifecha(!a3,!b3,"md")+0*hoy()  x=dia(!a3)=dia(fecha(año(!a3),mes(!a3)+1,0))  y=dia(!b3)=dia(fecha(año(!b3),mes(!b3)+1,0))  z=dia(!a3)>dia(!b3)  d.1=si(y(x,y,z),0,bd)  m.1=bm+y(x,y,z)  d.2=si(y(d.1,z),no(x)+dia(!b3)-dia(!a3)+dia(fecha(año(!a3),mes(!a3)+1,0)),d.1)  d=d.2-(d.2=31)  m=m.1*(m.1<>12)  a=ba+(m.1=12)   _edad=a&"-"&m&"-"&d 

Fórmula sobre Fechas By Xavier Budet Graco

Hacer operaciones con el calendario reporta algunas paradojas. Por ello se ha de pensar dos veces la misma operación para tratar de no cometer errores.

Le faltan ligeros ajustes dependiendo de como queramos realizar los cálculos entre Fechas….

Formula

=AÑO(B3)-AÑO(A3)-(B3<FECHA(AÑO(B3),MES(A3),SI(Y(MES(A3)=2,DIA(A3)=29,
RESIDUO(AÑO(B3),4)<>0),28,DIA(A3))))&"-"&SI(Y(MES(A3)<>MES(A3+1),
MES(B3)<>MES(B3+1)),MES(B3)-MES(A3)+(MES(B3)<MES(A3))*12,MES(B3)
-MES(A3)+((MES(B3)<MES(A3))*12)-(DIA(B3)<DIA(A3))+(Y(MES(B3)=
MES(A3),DIA(B3)<DIA(A3))*12))&"-"&SI(DIA(B3)<DIA(A3),
SI(Y(MES(A3)<>MES(A3+1),MES(B3)<>MES(B3+1),DIA(A3)>DIA(B3)),0,
B3-FECHA(AÑO(B3),MES(B3)-1,MIN(DIA(FECHA(AÑO(B3),MES(B3),0)),
DIA(A3)))),DIA(B3)-DIA(A3))

Anotaciones May

A la hora de crear una función para el manejo de las edades en años – meses – días, se debe tomar en cuenta ¿Cómo? necesitamos contar esas diferencias entre fechas, o ese tiempo transcurrido entre dos fechas, ya que cada uno según sus necesidades puede contar de maneras distintas por ejemplo:

Si tomamos el Dia 1 de la fecha inicial para contar los días con dos fechas como en la administración se cuenta …

  • ejemplo_1:

Fecha Inicial → Feb/03/2001 Fecha Final → Dec/01/2002

Días → 2 días ( 3 y 1 ) + 25 dias (resto de días de febrero) = 27 días

Meses → 9 meses (31 días de marzo, 30 días de abril, 31 días de mayo ……..)

Años → 2002 – 2001 = 1 año

Cuando un mes lo hacemos como mes ?

  • Ejemplo_2:

Fecha Inicial → Aug/31/2003 Fecha Final → Jan/31/2008

Días → [ 31 días ] o Cero [ 0 días ] ??

Meses → 5 meses o 4 meses ???

Años → 4 años

…y otras tantas cosillas que deberían de tomarse como partida a la hora de crear una formula adecuada a cada necesidad, por lo tanto cualquiera de las fórmulas expuestas os pueden ser validas.

Microsoft Word by Héctor Miguel Orozco Díaz

Calculo de Edad en años (fecha hoy() )

Dos Campos de texto de Formularios

Marcador para el campo de texto de formulario donde se va a introducir la fecha Birthdate

Nombre del marcador para el campo Age

Sub CalculateAge()  'Héctor Miguel Orozco Díaz Dim BirthDate As Date, Age As Integer BirthDate = ActiveDocument.FormFields("Birthdate").Result Age = DateDiff("yyyy", BirthDate, Now) ActiveDocument.FormFields("Age").Result = Age End Sub

Calcular la Edad (años – meses- días ) mediante Campos DateCalc.zip de Graham Mayor

Información Adicional

Cómo usar las fechas y horas en Excel

Descarga del archivo

Funciones para Edad XLS (27.9 kB)

Categorías: Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *