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
ResponderBorrarmuchisimas 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.
ResponderBorrarEddy López Guatemala
gracias!!! muy útil
ResponderBorrarjejeje pregunte sto y o me dieron rpta, con esto cañon tio.. buena
ResponderBorrarEpsilon desde Peru
gracias, muy preciso
ResponderBorraraguante union de santa fe
ResponderBorrarBuena información, la más completa q he encontrado
ResponderBorraryo creo q no es necesaria la función. Basta con restar las fechas de forma ordinaria con el menos.
ResponderBorrarMuy bueno campen, es la mejor explicación que encontré. Dios te lo sabrá recompensar.
ResponderBorrarBuenisimo, porque con la funcion resta salen los dias, pero no los meses ( que es dificil de calcular porque no todos tienen 30 dias )
ResponderBorrarlo hago y no me funciona me dice que es un error de formula
ResponderBorrarMuy buen tip
ResponderBorrarosea q onda con ustedes
ResponderBorrarhola papi
ResponderBorrarme encantan los numeros
ResponderBorrarMuchas gracias muy bueno!!!!
ResponderBorrarpara una tarea muchas gracias !!!
ResponderBorrarGracias, Valiosa y completa información. Felicitaciones!
ResponderBorrarPues sí! Gran info!
ResponderBorrarA continuar con la páginaque merece la pena el trabajo!
Excelente!
ResponderBorrarIncreible 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
ResponderBorrarMuchas gracias, una explicacion bastante buena y sencilla
ResponderBorrar------
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
ResponderBorrarMe ah ayudado mucho
Muchas gracias, me sirvió mucho tu información.
ResponderBorrarsi 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.
ResponderBorrarnO FUNCIONA EN EXCEL 2007!
ResponderBorrarMuchas gracias por el aporte...probado y funcionando en Excel 2007
ResponderBorrarMuy buena información de la función.
ResponderBorrarMuy buena explicación
ResponderBorrarLO MEJOR... DEMORÈ COMO CINCO DÌAS EN INTERNET Y NADA.. AHORA COPIO Y PEGA... SECO LOCO... ERES GENIAL... SE AGRADECE
ResponderBorrarYo 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.
ResponderBorrarLa información que proporcionaste es excelente y completa…. De nuevo gracias Men.
Excelente!!! gracias por la contribución. Saludos desde Guatemala!!!
ResponderBorrarperfecto el mini tutorial, esa ayuda de office en linea si no se entiende, sigue asi perfecto
ResponderBorrarExcelente Gracias!! funcionó perfecto....Al principio no sabía donde colocar la funcion
ResponderBorrardentro de la hoja de calculo, la coloqué a un lado del reporte que necesitaba y listo!!
no viene muy bien explicado
ResponderBorrarHola que tal!! tengo una tarea como dato calcular la fecha de nacimiento? solo se muestra la edad.
ResponderBorrarGracias por su ayuda