Ir ao conteúdo
  • Cadastre-se
pmssantos

Transformar números inteiros em anos, meses e dias?

Posts recomendados

Pessoal, eu necessito que um número, ex: 581, seja convertido para anos, meses e dias, ou seja, ao digitar 581 na célula A1, na célula B1 quero que o Broffice Calc mim informe que 581 é correspondente a 1 ano, 19 meses e 11 dias. Por favor, mim ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite pmssantos

Seja bem vindo ao fórum!

Eu não tenho o Brofficie para testar, mas no Excel funciona com esta fórmula:

Célula A1 = 581

Célula B1, copie e cole esta fórmula:

=DATADIF(0;A1;"Y")& " ano(s),"&DATADIF(0;A1;"YM")& " mês(es) e " &DATADIF(0;A1;"MD")&" dia(s)"

Se não funcionar, tente com essas outras aqui:

Na célula A1 = 581

Na célula A4, copie e cole:

=INT(A1/365,25)

Na célula B4, copie e cole:

=INT((A1-A4*365,25)/30,41667)

Na célula C4, copie e cole:

=INT(A1-A4*365,25-B4*30,41667)

Agora na célula B1, copie e cole a fórmula:

=INT(A1/365,25)& " ano(s),"&INT((A1-A4*365,25)/30,41667)& " mês(es) e " &INT(A1-A4*365,25-B4*30,41667)&" dia(s)"

Dê retorno.

Um abraço.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados. Antes de mais nada eu gostaria de avisar que não sou um expert em informática, sou arquiteto, mas, por causa do trabalho, fico procurando soluções para problemas que surgem seja com CADs, seja com outros programas (Excel por exemplo).

Para o problema acima eu tentei as duas fórmulas e notei que ambas apresentam o mesmo defeito, ou seja, no caso em que se queira converter 365 dias para anos, meses e dias, aparece o seguinte resultado: 0 ano(s), 11 mês(es) e 30 dia(s). Para 366 dias aparece 1 ano(s), 0 mês(es) e 0 dia(s) e para 367 dias aparece 1 ano(s), 0 mês(es) e 1 dia(s). 

Para a primeira fórmula não tem solução, mas para a segunda existe uma maneira para que isto não ocorra. Deve-se suprimir todos os valores após as vírgulas. O processo ficaria assim:

Na célula A1 = escola o valor (teste vários, como por exemplo 365, 366, 367, 500 etc)

Na célula A4, copie e cole:

=INT(A1/365)

Na célula B4, copie e cole:

=INT((A1-A4*365)/30)

Na célula C4, copie e cole:

=INT(A1-A4*365-B4*30)

Agora na célula B1, copie e cole a fórmula:

=INT(A1/365)& " ano(s),"&INT((A1-A4*365)/30,41667)& " mês(es) e " &INT(A1-A4*365-B4*30)&" dia(s)"

 

Eu testei e deu certo. Testem vcs tb.

Até mais,

Flávio C.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/10/2019 às 17:25, FLÁVIO C. disse:

Prezados. Antes de mais nada eu gostaria de avisar que não sou um expert em informática, sou arquiteto, mas, por causa do trabalho, fico procurando soluções para problemas que surgem seja com CADs, seja com outros programas (Excel por exemplo).

Para o problema acima eu tentei as duas fórmulas e notei que ambas apresentam o mesmo defeito, ou seja, no caso em que se queira converter 365 dias para anos, meses e dias, aparece o seguinte resultado: 0 ano(s), 11 mês(es) e 30 dia(s). Para 366 dias aparece 1 ano(s), 0 mês(es) e 0 dia(s) e para 367 dias aparece 1 ano(s), 0 mês(es) e 1 dia(s). 

Para a primeira fórmula não tem solução, mas para a segunda existe uma maneira para que isto não ocorra. Deve-se suprimir todos os valores após as vírgulas. O processo ficaria assim:

Na célula A1 = escola o valor (teste vários, como por exemplo 365, 366, 367, 500 etc)

Na célula A4, copie e cole:

=INT(A1/365)

Na célula B4, copie e cole:

=INT((A1-A4*365)/30)

Na célula C4, copie e cole:

=INT(A1-A4*365-B4*30)

Agora na célula B1, copie e cole a fórmula:

=INT(A1/365)& " ano(s),"&INT((A1-A4*365)/30,41667)& " mês(es) e " &INT(A1-A4*365-B4*30)&" dia(s)"

 

Eu testei e deu certo. Testem vcs tb.

Até mais,

Flávio C.

 

Olá, Flávio. 

 

Eu também não sou especialista em Calc/Excel mas me vi obrigado a mexer um pouco para elaborar planilhas no trabalho a fim de contar tempos de contribuição. 

 

A partir das suas dicas eu comecei a fazer testes e a pesquisar sobre o assunto. O problema principal de fazer conversão de dias em anos, meses e dias, considerando que um ano tem 365 dias e um mês tem 30 dias, é que, partindo de certos números, o retorno que se obtém realmente é incongruente. Por exemplo, ao converter 10580 a partir das suas fórmulas, o resultado é "28 anos, 11 meses e 0 dias", sendo que, na verdade, pegando-se o inteiro da fração 30,41667, obtém-se "28 anos, 12 meses e 0 dias". 

 

Seguindo a mesma lógica, se, por exemplo, tentar-se converter o quantitativo de 364 dias, o resultado usando 30,41667 é "0 anos, 11 meses e 4 dias", enquanto que, utilizando-se apenas 30 na segunda parte da fórmula da célula B1, o resultado é "0 anos, 12 meses e 4 dias". O mesmo vai acontecer se tentar usar de 360 a 364 na célula A1, i.e., o montante não é equivalente a 1 ano mas é retratado, se usar 30,41667, como significativamente menos do que 365 dias, ou, se usar 30 como divisor na segunda parte da fórmula da célula B1, como 12 meses e X dias.

 

Além disso, se você deixar o divisor 30,41667, ocorre de em algumas situações o resultado expressar um mês a menos do que deveria. É o caso do número 10431, para o qual a fórmula retorna, como resultado, "28 anos, 6 meses e 1 dia", quando, na verdade, ignorando a fração no divisor da célula B1, chega-se ao resultado correto, que é "28 anos, 7 meses e 1 dia".

 

Enfim, eu me vi em dificuldade também e, como no trabalho tenho utilizado o sistema e-Pessoal do TCU, optei por adotar a sistemática praticada pelo órgão. Lá, nas situações de "x anos, 12 meses e x dias", para não ficar evidente que, pelos cálculos, 12 meses não correspondem a um ano inteiro, o sistema retorna "x anos, 11 meses e 29 dias". Fazem assim porque o número de dias não é divisível por 365 e para que não seja exibido "x anos, 12 meses e x dias". 

 

Eis, então, a fórmula a que cheguei para que o resultado reflita, o máximo possível, anos, meses e dias e para que não ocorra o erro que se revela quando se usam alguns números (ex., 363, 364, 10431, 10432).

 

=INT(A1/365)&" ano(s), "&SE(INT((A1-(INT(A1/365)*365))/30)<12;INT((A1-(INT(A1/365)*365))/30);11)&" mês(s) e "&SE(INT((A1-(INT(A1/365)*365))/30)<12;INT(A1-(INT(A1/365)*365)-(INT((A1-(INT(A1/365)*365))/30)*30));29)&" dia(s)"

 

No mais, perdoe-me pelo texto longo e enfadonho. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!