Para implementar a sugestão de Máté Juhász
Coloque as datas (como strings) nas células A1 e A2 . Em B1 digite:
= DATEVALUE (ESQUERDO (A1, LEN (A1) -4) e DIREITO (A1,4) +2000)
e copie para baixo. Em seguida, em outra célula, insira a fórmula de Chip Pearson :
=DATEDIF(B2,B1,"y") & " years, " & DATEDIF(B2,B1,"ym") & " months, " & DATEDIF(B2,B1,"md") & " days"
ParausaroVBA:
Considereaseguintefunçãodefinidapelousuário(UDF):
PublicFunctionddif(d1AsDate,d2AsDate)AsStringDimyearsAsLong,monthsAsLong,daysAsLongyears=0months=0days=0year1=Year(d1)month1=Month(d1)day1=Day(d1)DoIfDateSerial(year1+years,month1,day1)=d2ThenGoTofinishedEndIfIfDateSerial(year1+years,month1,day1)>d2Thenyears=years-1ExitDoEndIfyears=years+1LoopDoIfDateSerial(year1+years,month1+months,day1)=d2ThenGoTofinishedEndIfIfDateSerial(year1+years,month1+months,day1)>d2Thenmonths=months-1ExitDoEndIfmonths=months+1LoopDoIfDateSerial(year1+years,month1+months,day1+days)=d2ThenGoTofinishedEndIfdays=days+1Loopfinished:ddif=years&" " & months & " " & days
End Function
Os anos, meses e dias serão retornados com um único espaço entre eles.
FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:
- ALT-F11exibeajaneladoVBE
- ALT-IALT-Mabreumnovomódulo
- coleomaterialefecheajaneladoVBE
Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx
PararemoveroUDF:
- abrirajaneladoVBEcomoacima
- limpeocódigo
- fecheajaneladoVBE
ParausaroUDFdoExcel:
=myfunction(A1)
Parasabermaissobremacrosemgeral,consulte:
e
e para detalhes sobre UDFs, consulte:
As macros devem estar ativadas para que isso funcione!