Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

transformar dias en año,meses y días

35,353 views
Skip to first unread message

Alberto Méndez

unread,
Jul 18, 2001, 9:17:29 AM7/18/01
to
Se puede con excel, transformar Ej: 5539 dias y que me lo
transforme en año - meses - días, con el formato de celda
fecha no lo logra. ejemplo real 5539 = 15/2/9 (manual) y
con formato fecha 15/3/1 no coincide. alguna solución o
formula la agradeceria.

JB- Jorgelina E. Bernasconi

unread,
Jul 18, 2001, 9:28:39 AM7/18/01
to
Alberto
Pero desde cuando estas empezando a contar esos 5539 dias??
Saludos!
Jorgelina

"Alberto Méndez" <anf...@lacapitalnet.com.ar> escribió en el mensaje
news:6b8e01c10f8b$feb2b540$19ef2ecf@tkmsftngxa01...

Mauricio Baeza

unread,
Jul 18, 2001, 1:56:33 PM7/18/01
to
Recuerda que ninguna medida de tiempo es constante, pero si consideras
año=365 dias y mes=30 dias con 5539 dias tendriamos
15 años = 15 x 365 = 5475 dias
5539 dias - 5475 dias = 64 dias
64 dias / 30 dias = 2 meses y nos quedan 4 dias

5539 = 15 años, 2 meses, 4 dias

lo cual hace esta función

Public Function AMD(ByVal NumDias As Long) As String
Dim Años As Integer
Dim Meses As Integer
Dim Dias As Integer

Años = NumDias \ 365
Meses = (NumDias - (Años * 365)) \ 30
Dias = NumDias - (Años * 365) - (Meses * 30)

AMD = Años & " años, " & Meses & " meses, " & Dias & " dias "

End Function

Alberto Méndez <anf...@lacapitalnet.com.ar> escribió en el mensaje de
noticias 6b8e01c10f8b$feb2b540$19ef2ecf@tkmsftngxa01...

Mauricio Baeza

unread,
Jul 18, 2001, 2:28:08 PM7/18/01
to
Unas pequeñas mejoras...

Public Function AMD(ByVal NumDias As Long) As String
Dim Años As Integer
Dim Meses As Integer
Dim Dias As Integer

Dim strPeriodo As String

Años = NumDias \ 365
Meses = (NumDias - (Años * 365)) \ 30
Dias = NumDias - (Años * 365) - (Meses * 30)

If Años > 1 Then
strPeriodo = Años & " años "
ElseIf Años = 1 Then
strPeriodo = Años & " año "
End If

If Meses > 1 Then
strPeriodo = strPeriodo & Meses & " meses "
ElseIf Meses = 1 Then
strPeriodo = strPeriodo & Meses & " mes "
End If

If Dias > 1 Then
strPeriodo = strPeriodo & Dias & " dias"
ElseIf Dias = 1 Then
strPeriodo = strPeriodo & Dias & " dia"
End If

AMD = strPeriodo

End Function


Emilio

unread,
Jul 23, 2001, 10:05:35 AM7/23/01
to
Hola Alberto

Otra opción

si le sumas, o restas, los 5539 días a la fecha a partir de la que quieres contarlos luego puedes aplicar la siguiente función

Saludos

Emilo

'***********************************************************************************************************
' Devuelve los días y/o los meses y/o los años transcurridos entre dos fechas
' deberá llevar la definición de tipo en el encabezado de un modulo
' Type Edad
' Dias As Byte
' Meses As Byte
' Años As Integer
' End Type
' p.ej.: Edad("15/1/01", Date).Dias devuelve los dias transcurridos desde el 15/01/01 hasta hoy
' ESH 01/06/01 19:52
'***********************************************************************************************************

Public Function Edad(DatFecha1 As Date, DatFecha2 As Date) As Edad

Dim bytDias As Long
Dim bytMeses As Byte
Dim intAños As Integer
Dim datPrimeraFecha As Date
Dim datSegundaFecha As Date

' ordeno correctamente las fechas
If DatFecha1 < DatFecha2 Then
datPrimeraFecha = DatFecha1
datSegundaFecha = DatFecha2
Else
datSegundaFecha = DatFecha1
datPrimeraFecha = DatFecha2
End If ' DatFecha1 < DatFecha2

' calculo la diferencia en años
intAños = DateDiff("yyyy", datPrimeraFecha, datSegundaFecha)

If format(datSegundaFecha, "mmdd") < format(datPrimeraFecha, "mmdd") Then
intAños = intAños - 1
End If ' format(datSegundaFecha, "mmdd") < format(datPrimeraFecha, "mmdd")

' calculo la diferencia en meses
bytMeses = DateDiff("m", datPrimeraFecha, datSegundaFecha) - (intAños * 12)

' calculo la diferencia en días
bytDias = DateDiff("d", format(datPrimeraFecha, "dd"), format(datSegundaFecha, "dd"))

If bytDias < 0 Then
bytMeses = bytMeses - 1
bytDias = DateDiff("d", DateSerial(Year(datSegundaFecha), Month(datSegundaFecha) - 1, Day(datPrimeraFecha)), datSegundaFecha)
End If ' bytDias < 0

' en cada caso devuelvo su valor
Edad.Dias = bytDias
Edad.Meses = bytMeses
Edad.Años = intAños

End Function ' Edad

elenat...@gmail.com

unread,
Nov 10, 2014, 6:52:09 PM11/10/14
to
Tienes que coger 5 celdas darlas el formato de número y empiezas, por ejemplo:
celda A1, B1, C1, D1,E1

CELDA A1> INTRODUCES CERO

CELDA B1> ITRODUCES 5539 QUE ES TÚ CASO (OSEA LOS DÍAS QUE QUIERAS CONVERTIR)

CELDA C1> EN BARRA DE FORNULAS INTRODUCES> =SIFECHA(A1;B1;"Y") DAS A INTRO Y TE SALEN LOS AÑOS.

CELDA D1> EN BARRA DE FORMULAS INTRODUCES> =SIFECHA(A1;B1;"YM") DAS A INTRO Y TE SALEN LOS MESES.

CELDA E1> EN BARRA DE FORMULAS INTRODUCES> =SIFECHA(A1;B1;"MD") DAS A INTRO Y TE SALEN LOS DÍAS.

NOTA: PARA HALLAR AÑOS > "Y"
PARA HALLAR MESES> "YM"
PARA HALLAR DIAS > "MD"

NÓ TE OLVIDES DE PONER LAS COMILLAS Y EL PUNTO Y COMA.
´TÚ CASO 5539 DÍAS SON: 15 AÑOS 2 MESES Y 1 DÍA.

ESPERO QUE TE SIRVA; UN SALUDO

JOKIN

rah.est...@gmail.com

unread,
Feb 13, 2018, 1:05:16 PM2/13/18
to

Buenas tardes, quisiera saber como hacer que una celda que diga 12 meses en la siguiente me diga el número de días en esos 12 meses.
Gracias.
0 new messages