SIFECHA devuelve la diferencia entre dos fechas, expresada en determinado intervalo. La sintaxis:
=SIFECHA(fecha_1, fecha_2, intervalo)
fecha_1 y fecha_2 deben ser fechas válidas, de otra forma, obtendremos un error #¡VALOR!. fecha_1 debe ser menor (más antigua) que fecha_2. Si no es así, se obtiene #¡NUM! El argumento intervalo especifica la unidad de medida en la que Excel devolverá el resultado. Puede ser uno de los siguientes valores:
"m" - meses. Número de meses completos entre fecha_1 y fecha_2.
"d" - días. Número de días entre fecha_1 y fecha_2.
"y" - años. Número de años completos entre fecha_1 y fecha_2.
"ym" - meses excluyendo años. Número de meses entre fecha_1 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo año.
"yd" - días excluyendo años. Número de días entre fecha_2 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo año.
"md" - días excluyendo meses y años. Número de días entre fecha_2 y fecha_2, suponiendo que fecha_1 y fecha_2 son del mismo mes y del mismo año.
Supongamos que queremos calcular la diferencia entre las fechas 01/03/2007 (uno de marzo de 2007) y la actual 24/03/2009. El resultado de SIFECHA variará según el intervalo especificado, como sigue:
Nótese que si el argumento intervalo es una referencia, no debe estar escrito entre comillas.
Para calcular la edad de una persona podemos usar una fórmula como la siguiente:
=SIFECHA(A1,HOY(), "y") & " años, " & SIFECHA(A1,HOY(),"ym") & " meses, " & SIFECHA(A1, HOY(), "md") & " días."
Suponiendo que la fecha de nacimiento del individuo estudiado está en A1.
Utilizando VBA, SIFECHA no puede ser llamada utilizando WorksheetFunction. Es preciso elaborar manualmente el código que haga los cálculos, por ejemplo:
Function Age(fecha1 As Date, fecha2 As Date) As String
Dim Y As Integer
Dim M As Integer
Dim D As Integer
Dim Temp1 As Date
Temp1 = DateSerial(Year(fecha2), Month(fecha1), Day(fecha1))
Y = Year(fecha2) - Year(fecha1) + (Temp1 > fecha2)
M = Month(fecha2) - Month(fecha1) - (12 * (Temp1 > fecha2))
D = Day(fecha2) - Day(fecha1)
If D < 0 Then
M = M - 1
D = Day(DateSerial(Year(fecha2), Month(fecha2) + 1, 0)) + D + 1
End If
Age = Y & " años " & M & " meses " & D & " dias"
End Function



Gracias
ResponderEliminarmuchisimas gracias me es exacto la informacion que necesitaba pase casi 3 dias buscando en toda la internet como usar esta funcion y con su ayuda lo logre al primer intento. muchas gracias.
ResponderEliminarEddy López Guatemala
gracias!!! muy útil
ResponderEliminarjejeje pregunte sto y o me dieron rpta, con esto cañon tio.. buena
ResponderEliminarEpsilon desde Peru
gracias, muy preciso
ResponderEliminaraguante union de santa fe
ResponderEliminarBuena información, la más completa q he encontrado
ResponderEliminaryo creo q no es necesaria la función. Basta con restar las fechas de forma ordinaria con el menos.
ResponderEliminarMuy bueno campen, es la mejor explicación que encontré. Dios te lo sabrá recompensar.
ResponderEliminarBuenisimo, porque con la funcion resta salen los dias, pero no los meses ( que es dificil de calcular porque no todos tienen 30 dias )
ResponderEliminarlo hago y no me funciona me dice que es un error de formula
ResponderEliminarMuy buen tip
ResponderEliminarosea q onda con ustedes
ResponderEliminarhola papi
ResponderEliminarme encantan los numeros
ResponderEliminarMuchas gracias muy bueno!!!!
ResponderEliminarpara una tarea muchas gracias !!!
ResponderEliminarGracias, Valiosa y completa información. Felicitaciones!
ResponderEliminarPues sí! Gran info!
ResponderEliminarA continuar con la páginaque merece la pena el trabajo!
Excelente!
ResponderEliminarIncreible que no esté documentada!.
Como alternativa para calcular los meses entre dos fecha puede usarse:
--
redondear((fecha_final-fecha_inicial+1)/30.4)
--
donde 30.4 resulta de dividir 365/12
--
Saludos!
Muchas gracias. Por fin una explicación clara de la función. Bien explicada y bien documentada
ResponderEliminarMuchas gracias, una explicacion bastante buena y sencilla
ResponderEliminar------
Yo usaba SIFECHA con buenos resultados pero veo que para el año 2012 cuenta los dias sin exclusion de meses. Con el codigo presentado para la FUNCTION AGE me quedo genial!!
-----
Muchas gracias
Excelente muchas gracias
ResponderEliminarMe ah ayudado mucho
Muchas gracias, me sirvió mucho tu información.
ResponderEliminarsi todo muy bueno pero si yo tengo la fecha de hoy y un pibe tiene 35 años como calculo cuantos años trabajo en una agencia si no me da la primera fecha que trabajo.
ResponderEliminarnO FUNCIONA EN EXCEL 2007!
ResponderEliminarMuchas gracias por el aporte...probado y funcionando en Excel 2007
ResponderEliminarMuy buena información de la función.
ResponderEliminarMuy buena explicación
ResponderEliminarLO MEJOR... DEMORÈ COMO CINCO DÌAS EN INTERNET Y NADA.. AHORA COPIO Y PEGA... SECO LOCO... ERES GENIAL... SE AGRADECE
ResponderEliminarYo no tarde tanto buscando en internet, solo busque la la función en la ayuda de Excel con la tecla F1 y el primer resultado fue el de tu foro… Gracias estimado…. Haz trascendido a las barreras de Microsoft.
ResponderEliminarLa información que proporcionaste es excelente y completa…. De nuevo gracias Men.
Excelente!!! gracias por la contribución. Saludos desde Guatemala!!!
ResponderEliminarperfecto el mini tutorial, esa ayuda de office en linea si no se entiende, sigue asi perfecto
ResponderEliminarExcelente Gracias!! funcionó perfecto....Al principio no sabía donde colocar la funcion
ResponderEliminardentro de la hoja de calculo, la coloqué a un lado del reporte que necesitaba y listo!!
no viene muy bien explicado
ResponderEliminar