No Excel 2013, é necessário calcular os anos, meses e dias entre 2 datas, 1 ou mais antes de 1900

0

No Excel 2013, preciso criar uma fórmula para calcular anos, meses e dias entre duas datas, se uma ou ambas as datas forem pré-1900 .
Por exemplo: 5/20/1896 - 12/11/2004 = 108 anos, 6 meses, 21 dias,
ou 7/19/1757 - 17/3/1858 = 100 anos, 7 meses, 26 dias.

    
por Judy S. 25.06.2017 / 21:43

1 resposta

0

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:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=myfunction(A1)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 25.06.2017 / 22:48