cálculo que o datad...
 
Notifications
Clear all

cálculo que o datadif utiliza?

12 Posts
2 Usuários
0 Reactions
6,595 Visualizações
(@carmelito)
Posts: 24
Eminent Member
Topic starter
 

:o Será que alguém pode responder com que base de cálculo o datadif utiliza?
Por exemplo, =DATADIF(0;K385;"y")&" a "&DATADIF(0;K385;"ym")&" m" para calcular quantos anos e meses tem, pegando o número de dias entre duas datas, em alguns casos, como 271 dias, transformados pela fórmula acima, em meses o excel informa: 8 meses, mas na verdade se pegar 271/30dias, na cálculadora, dá 9 meses, e não 8 meses. E se tem alguma forma simples para calcular em anos e meses, mas utilizando 30 dias no cálculo do excel.

:D Agradeço de antemão.

 
Postado : 28/02/2012 3:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde,

No meu entendimento o cálculo do DATADIF não leva em consideração a quantidade de dias entre as datas e sim a quantidade de meses, no caso da utilização do parâmetro "ym".
Um mês pode ter de 28 a 31 dias e isso causa diferenças no cálculo de uma ou outra forma.
Exemplo: 01/01/2012 - 28/09/2012 correspondem a 271 dias, porém o 9º mês só vai ser completado no dia 01/10/2012.
Além disso, apesar de tratarmos o mês como um período de 30 dias somente 4 tem esta quantidade. A maioria (7) tem 31 dias.

Abraço

 
Postado : 28/02/2012 3:47 pm
(@carmelito)
Posts: 24
Eminent Member
Topic starter
 

obrigado, o ruim é explicar isso para pessoa que não tem noção do excel, e ao fazer na cálculadora dá um resultado e o excel dá outro, mas é exatamente o exemplo de datas que você disse que estou tendo problemas em alguns casos, obrigado.

 
Postado : 28/02/2012 6:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Há que se definir o que vai ser considerado: ano civil (365/366 dias) ou ano comercial (30x12 = 360 dias).
Quanto ao cálculo dos dias com base no ano comercial (meses de 30 dias) eu faria assim:

(data final - data inicial)/30

Como a data, no Excel, é um número sequencial (01/01/1900 = 1, 02/01/1900 = 2, etc.) a conta é relativamente simples.

Abraço

 
Postado : 28/02/2012 6:41 pm
(@carmelito)
Posts: 24
Eminent Member
Topic starter
 

o problema que eu tenho que representar o resultado em ano e mês, por isso que estou utilizando a fórmula: =DATADIF(0;célula em dias;"y")&" a "&DATADIF(0;célula em dias;"ym")&" m" para gerar em uma célula o resultado: x ano e x mês, por isso, eu tentei essa fórmula acima, será que tem outra ideia? Ou alguém. Obrigado.

 
Postado : 28/02/2012 7:24 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Na minha opinião a melhor maneira é utilizando o DATADIF, mesmo.
Só tem que deixar claro que o ano considerado é o civil.

Abraço

 
Postado : 28/02/2012 7:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Precisei uma vez fazer uma fórmula de diferença de datas sem usar o datadif.
Data inicial A1
Data final B1

=SE(INT((B1-A1)/365)>0;INT((B1-A1)/365)&" anos e ";"")&INT((((B1-A1)/365)-INT((B1-A1)/365))*12)&" meses"

Qualquer coisa da o grito.

 
Postado : 29/02/2012 10:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se me permitem um "a parte".
Como disse o colega JValq, em calculos com data o mais importante e definir a base; algumas areas utilizam o chamado ano comercial de 360 dias, outros utilizam 365 dias,
Já e em alguns calculos é necessario considera-se tambem no periodo "ano bissesto", para tanto um ano de 365,25 dias.
O DataDif, considera os bissesto em seus calculos, já metodo(formula) demostrado pelo Bernardo é perfeito; porem, dependendo do tempo entre as datas, não "baterá" como o datadif.

 
Postado : 29/02/2012 2:09 pm
(@carmelito)
Posts: 24
Eminent Member
Topic starter
 

Obrigado pela esclarecimentos, a ideia principal é a base de dados, se vamos utilizar o ano civil ou bancário, ou utilizar =SE(INT((B1-A1)/365)>0;INT((B1-A1)/365)&" anos e ";"")&INT((((B1-A1)/365)-INT((B1-A1)/365))*12)&" meses"
sem levar em conta se o ano é bissexto ou não, agora entendi e posso ter uma base para possível explicação, muito obrigado a todos, e Reinaldo, ótima planilha de exemplo, valeu pelo presente. Boa noite.

 
Postado : 29/02/2012 3:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Boa noite meu povo!! k
.
Hoje paguei um "mico" por culpa desse DATADIF k
.
A pessoa nasceu em 27/03/1992, considerando hoje 26/03/2015 - e ano comercial de 360 dias, ela tem 22a11m27d ... ou seja, ela faria aniversário no Domingo (29/03/2015)!!! ... Mas na verdade, considerando ano bisexto, ela faz aniversário na Sexta (27/03/2015)!!!
.
Alguém sabe como fazer a DATADIF (ou outra formula) considerar ano bisexto???

 
Postado : 26/03/2015 9:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não havia notado essa peculiaridade.
Uma outra possibilidade seria:

26/3/2015-27/3/1992+1=8400 --)=INT(8400/365,25)&" Anos" & ", " & INT(MOD(8400;365,25)/30,43) & " Meses" & " - " & INT(MOD(MOD(8400;365,25);30,43)) & " Dias"; deverá retornar --> 22 Anos, 11 Meses - 29 Dias

 
Postado : 27/03/2015 5:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Reinaldo, esquece!!! k
.
A DATADIF faz uma pegadinha, mas logo se ajusta kk
.
Ontem ela dizia 22a11m27d, mas hoje ela já acertou para 23a0m0d !!!
.
................................. RESOLVIDO!!!!!!!!! ......................................

 
Postado : 27/03/2015 7:58 am