Ir ao conteúdo

Posts recomendados

Postado

Olá, pessoal.

 

Estou com uma grande dificuldade para construir uma fórmula sobre cálculo de datas. Vou explicar. 

 

Gostaria de calcular a quantidade de meses entre duas datas quaisquer, considerando como mês a fração de mês, ou seja, se o mês tem apenas 3 dias, ele será considerado como um mês inteiro.

 

Além disso, não gostaria que o resultado do cálculo seja dividido por 30, pois o resultado não é preciso, já que o mês de fevereiro possui 28 ou 29 dias, conforme seja bissexto , bem como há meses com 31 dias, como janeiro, março, maio, julho, agosto, outubro e dezembro.

 

Também não gostaria de usar a fórmula =DATEDIF(data_inicial; data_final; "M"), porque essa fórmula calcula apenas o número de meses inteiros; desprezando, portanto, as frações de meses.

 

Pois bem, digamos que data inicial esteja na célula E11; e a data final, na célula E12. Assim, seguem as situações:

 

  • ·Se o ano data inicial e o ano data final são iguais e correspondem ao ano atual, então retorne o resultado 0 (zero). Por exemplo:

E11 é 25/02/2024 e E12 é 05/06/2024, então retorne 0;

E11 é 18/03/2024 e E12 é 25/09/2024, então retorne 0;

E11 é 25/05/2024 e E12 é 26/07/2024, então retorne 0 e assim por diante.

 

  • Se o ano data inicial e o ano data final são diferentes e o ano da data final esteja no ano atual, então calcule o número de mês ou meses entre a data inicial e o último dia do ano anterior à data final, considerando como mês a fração de mês. Por exemplo:

E11 é 31/08/2022 e E12 é 05/06/2024, então o resultado deve ser 17 meses;

E11 é 06/07/2023 e E12 é 04/03/2024, então o resultado deve ser 6;

E11 é 04/05/2018 e E12 é 04/02/2024, então o resultado deve ser 68 e assim por diante.

 

  • Se ambos os anos não correspondem ao ano atual e o dia do mês da data final é igual a 1, então calcule o número de mês ou meses entre a data inicial e o último dia do mês anterior à data final, considerando mês a fração de mês. Por exemplo:

E11 é 27/02/2023 e E12 é 01/03/2023, então o resultado é 1;

E11 é 26/01/2022 e E12 é 01/03/2023, então o resultado é 2;

E11 é 30/04/2022 e 01/07/2022, então o resultado é 3;

E11 é 31/03/2022 e E12 é 01/07/2022, então o resultado é 4;

E11 é 26/08/2018 e E12 é 01/05/2023, então o resultado é 57 e assim por diante.

 

  • Se ambos os anos não corresponde ao ano atual e o dia do mês da data final é diferente de 1, então calcule o número de mês ou meses entre as datas, considerando mês a fração de mês. Por exemplo:

E11 é 04/05/2022 e E12 é 24/05/2022, então o resultado é 1;

E11 é 28/02/2021 e 15/03/2021, então o resultado é 2;

E11 é 09/09/2018 e 02/11/2018, então o resultado é 3;

E11 é 11/10/2021 e E12 03/04/2023, então o resultado é 19 e assim por diante.

 

Então, como se pode observar, é como se cada mês e fração de mês equivalesse a 1 unidade, e, quando somado, é possível obter o resultado desejado, observadas as condições supramencionadas.

 

Portanto, gostaria de uma fórmula que atendesse as recomendações e condições acima.

 

Desde já, agradeço quem puder me ajudar.

 

 

 

  • Solução
Postado

Experimente:

=SE(E(ANO(E11)=ANO(E12);ANO(E11)=ANO(HOJE()));0;SE(ANO(E12)=ANO(HOJE());DATADIF(E11;DATA(ANO(E12)-1;12;31);"m")+1;DATADIF(E11;E12;"m")+1+(1*DIA(E11)>DIA(E12))-(1*DIA(E12)=1)))

 

Em 08/06/2024 às 21:22, Nilton Cézar disse:

E11 é 26/01/2022 e E12 é 01/03/2023, então o resultado é 2; >>> o resultado correto é 14

 

  • Curtir 1
Postado

Olá, OreiaG.

 

Citação

E11 é 26/01/2022 e E12 é 01/03/2023, então o resultado é 2; >>> o resultado correto é 14

 

Foi um erro! Era para ser 01/03/2022. Conferi essas datas diversas vezes e ainda errei!🤦‍♂️

 

A respeito da fórmula apresentada, quero agradecer pela sugestão. Fiz alguns testes, e aparentemente ela funciona conforme proposto no primeiro tópico.

 

Mas, confesso que decidi mudar a abordagem para calcular o número de meses, planejando utilizar, para isso, macro, por entender que é a melhor opção.

 

É que, após analisar uma outra planilha com data, eu tive uma ideia para resolver esse problema do cálculo de meses. É uma solução bem mais simples e mais eficiente do que as fórmulas.

  

Então, vamos esquecer a proposta inicial de basear esse projeto apenas em fórmulas. Pois elas ficarão bem complexas e provavelmente não serão tão precisas quanto se espera.

 

Pois bem, para implementar essa ideia, eu preciso de uma macro para gerar uma lista de datas (na vertical, ou seja, em uma coluna), de modo a dispor todos os meses com os anos, desde a data inicial até a data final.

 

Então, vejamos como essa macro funcionaria:

  • A data inicial será inserida na célula D5; e a data final, na célula D6, ambas em uma guia que eu chamarei de “Data”.
  • Considerando essas datas, gostaria que macro gerasse a lista de datas também na guia “Data”, a partir da célula C10, no formato mês e ano, como, por exemplo, abr/22 ou abr/2022.
  • Sempre que for gerada uma nova lista de datas, a lista anterior deverá ser excluída, a fim de evitar sobreposição ou embaralhamento de datas, e, portanto, confusão na relação de datas geradas.
  • Gostaria que, quando a data inicial fosse posterior à data final, a macro tratasse esse erro e exibisse uma msgbox de advertência, informando, por exemplo: "A data inicial deve ser menor ou igual à data final."
  • Da mesma forma, quando fosse digitada uma data inexistente, como 10/15/2020222, ou, digitada uma data com letras, como 025ssss/mm etc, também fosse incluído um código para tratar erro relacionado a datas inválidas, com uma msgbox.

 

Observação: como se observa, a macro irá atuar na guia “Data”, mas pretendo executá-la clicando em um botão adicionado em outra guia (“Valor líquido”). Não sei se essa informação é importante, mas, na dúvida, resolvi relatar.

 

Após a criação da macro com base nas coordenadas acima, é possível, a partir da lista de datas geradas, calcular a quantidade de meses da forma desejada, utilizando outros recursos.

 

Agradeço pela ajuda.

 

 

Postado
10 horas atrás, Nilton Cézar disse:

 

Mas, confesso que decidi mudar a abordagem para calcular o número de meses, planejando utilizar, para isso, macro, por entender que é a melhor opção.

Na minha opinião, seria melhor você abrir um novo tópico com essa sua nova demanda que nada tem a ver com o assunto original deste tópico. Vou deixar para algum usuário que esteja disposto a lhe ajudar com essa nova demanda.

 

 

Então, vamos esquecer a proposta inicial de basear esse projeto apenas em fórmulas. Pois elas ficarão bem complexas e provavelmente não serão tão precisas quanto se espera.

As fórmulas são precisas sempre, e se o resultado não for o esperado é porque a fórmula foi mal construída. 😉

 

 

  • Curtir 1
Postado
Citação

As fórmulas são precisas sempre, e se o resultado não for o esperado é porque a fórmula foi mal construída.

Verdade, OreiaG. É que realmente decidi usar macro. Resolvi deixar o cálculo automatizado.

 

Assim, utilizando macro e com a ideia que me veio a cabeça, a meu ver, o projeto ficará bem mais simples e prático.

 

A propósito, gostaria de pedir desculpas pelo tempo que você despendeu fazendo aquela fórmula. Infelizmente, quando optei por mudar a abordagem inicial, você já tinha enviado a fórmula. 🫣

 

Acredito que deve ter dado uma trabalheira enorme entender todas aquelas condições complicadas.

 

Citação

Na minha opinião, seria melhor você abrir um novo tópico com essa sua nova demanda que nada tem a ver com o assunto original deste tópico. Vou deixar para algum usuário que esteja disposto a lhe ajudar com essa nova demanda.

 

Acho que você tem razão, OreiaG. Acho que vou fazer isso mesmo.

 

Só espero que o novo tópico não seja considerado em duplicidade com este.

 

Muito obrigado pela atenção e pela ajuda.

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!