Hola...
Recuerda que la cuenta de los días no es exacta, por lo que siempre tendrás variaciones dependiendo de los criterios que sigas.
Para tu ejemplo, 3703 días dan, efectivamente, 10 años, 1 mes y 22 días, si consideras años de 365 días, pero si consideras años de 365.2, veras que te da 10 años, 1 mes y 20 días.
Prueba lo siguiente:
Celda A14 = 3703
Celda B14 = ENTERO(A14/365.2)&" años, "&ENTERO((A14-ENTERO(A14/365.2)*365.2)/30.42)&" mes y "&ENTERO(A14-(ENTERO(A14/365.2)*365.2+ENTERO((A14-ENTERO(A14/365.2)*365.2)/30.42)*30.42))&" días"
Esta larga función es ideal para convertirse en una función personalizada. Por ejemplo
Celda B16 = AMD(A14)
Donde la función AMD, tiene el siguiente código:
- Código: Seleccionar todo Expandir vistaContraer vista
Option Explicit
Function AMD( Dias As Long ) As String
Dim iAnos As Integer
Dim iMeses As Integer
Dim iDias As Integer
Dim sTmp As String
Const sAno As Single = 365.20
Const sMes As Single = 30.42
iAnos = Dias \ sAno
Select Case iAnos
Case 1 : sTmp = "1 año, "
Case Else : sTmp = iAnos & " años, "
End Select
iMeses = ( Dias - ( iAnos * sAno ) ) \ sMes
Select Case iMeses
Case 1 : sTmp = sTmp & "1 mes y "
Case Else : sTmp = sTmp & iMeses & " meses y "
End Select
iDias = Int( Dias - (( iAnos * sAno ) + (iMeses * sMes )) )
If iDias < 0 Then iDias = 0
Select Case iDias
Case 1 : sTmp = sTmp & "1 día"
Case Else : sTmp = sTmp & iDias & " días"
End Select
AMD = sTmp
End Function
Te anexo el archivo donde hice las pruebas, por favor, si esto resuelve tu pregunta, edita el titulo de este hilo para marcarlo como [RESUELTO], esto nos permite tener foros más ordenados.
Saludos