Função DataDif() Excel

Uma coisa que gera bastante dificuldade em muitos usuários é a função "=Datadif()", não como usá-la, pois isto está disponível em diversos sites na rede. O que é difícil é encontrá-la disponível para uso.

Ao contrário das outras fórmulas do Excel, essa função não aparece na lista de funções disponíveis e a ajuda do Office não mostra nada sobre ela a não ser com VBA.

Mas ela existe! E está disponível para uso, porém se você procurá-la não a encontrará. A saída é:

Ao invés de você procurar a função nas disponíveis, clique eu alguma célula e digite ela, ou seja, digite, por exemplo, em A1 =Datadif("Data Inicial";"Datafinal";"Formato de saída").

Ela vai funcionar, mesmo não estando disponível nas fórmulas normais, se você a utilizar digitando o seu nome corretamente e seus parâmetros, ela vai funcionar.

34 comentários:

  1. poderia explicar como são definido esses criterios
    =Datadif("Data Inicial";"Datafinal";"Formato de saída")

    ResponderExcluir
  2. Certo, suponha que na célula A1 esteja a data "20/06/2010" (sem aspas) e que na célula B1 esteja a data atual.

    Supondo que você digite na célula C1 a função "=datadif("a1";"b1";"d")" (sem as aspas mais externas) o resultado será 31. Pois ele vai pegar a data inicial, "20/06/2010" e vai subtrair da data final, que é a data atual, como critério para isso o dia "d". Se você quisesse saber a diferença em anos, bastava substituir "d" por "y" na fórmula e estaria resolvido (para o mês use "m"). Ou seja, o primeiro parâmetro da fórmula sempre é a menor data, o segundo sempre é a data maior e o terceiro é o que você deseja subtrair, se os dias entre as duas datas, se os meses ou os anos.

    ResponderExcluir
  3. ha sim, obrigado.
    não estava entendendo como iria definir o formato de saida.

    obrigado por me ajudar.

    ResponderExcluir
  4. Sem problemas, precisando o blog é todo seu!

    ResponderExcluir
  5. Comigo esta função não está retornando os valores corretos. Estou fazendo tudo certinho e algumas vezes funciona e, em outras, não. Por que isso deve estar acontecendo?

    ResponderExcluir
  6. Meu amigo(a), comigo também acontece a mesma coisa, às vezes. Em 99% dos casos é por causa da formatação da célula, linha ou coluna. Quando isso acontece, eu sempre excluo a coluna toda e insiro uma nova, sem formatação nenhuma, e essa bendita fórmula volta a funcionar.

    Para mim, é um erro do Office 2007, pois essa função é muito útil e não está presente nas funções básicas do Excel. No VBA ela está presnte e funciona sem problema algum. Imagino que o Office 2010 resolverá tal problema. Ou não...

    Qualquer dúvida, não exite em perguntar.

    ResponderExcluir
  7. Olá pessoal,
    colaborando com o blog, vou mostrar uma utilidade bastante funcional para a função DATADIF, que é mostrar o Tempo de Serviço de um funcionário.
    Ex.
    No campo D11 insira uma data ex:01/03/1999
    Em uma outra célula coloque a fórmula a seguir:
    =DATADIF(D11; HOJE();"Y")& "a "&DATADIF(D11;HOJE(); "YM")&"m e "&DATADIF(D11;HOJE(); "MD")&"d"

    A saída será: 11a 9m e 14d

    No Excel 2007 existe a função DATAM que torna mais simples essa tarefa.

    ResponderExcluir
  8. Ótima dica Luciano. Obrigado pela colaboração e pela visita também! Esteja sempre à vontade para colaborar, dar dicas e sugestões.

    Abraços.

    ResponderExcluir
  9. Este comentário foi removido pelo autor.

    ResponderExcluir
  10. "yd" Dias entre as datas, como se estivessem no mesmo ano.

    "md" Faz a subtração apenas dos dias (I) como se eles fossem do mesmo mês e ano.

    "ym" Meses entre as datas, as datas, como se estivessem no mesmo ano.

    ResponderExcluir
  11. Raphael, já vi seu email e já o respondi. Apenas apaguei seu comentário porque você colocou seu email nele. Daí, para depois não aparecer nenhum engraçadinho que queira lhe prejudicar, apaguei-o assim que vi e respondi por email.

    Abraços

    ResponderExcluir
  12. ESTA FUNÇÃO FOI REMOVIDA DO EXCEL 2010?

    Tentei fazer como no Excel 2007 mas no 2010 não funciona, volta erro = "Nome?"

    Renatoabc@hotmail.com

    ResponderExcluir
  13. No 2010 funciona do mesmo jeito. Tente rever a fórmula e digitá-la com cuidado.

    Caso não consiga de maneira alguma, avise-nos que ajudaremos melhor.

    ResponderExcluir
  14. Olá o post é velho mas gostaria de comentar que tentei fazer e não dava certo pois na fórmula sugerida contém um erro. O correto é =DATADIF(A1;B1;"d") e assim funcionou.

    ResponderExcluir
  15. Não é bem um erro, é que simplesmente coloquei aspas nos dois primeiros parametros no post porque estava fazendo uma citação de mais de 1 caractere.

    De qualquer forma, obrigado por sua colaboração =]

    ResponderExcluir
  16. Bom dia, este post já tem algum tempo, e eu andei a pesuisar e verifiquei que comingo apenas funciona se colocar a concatenação no ninal, isto é
    =datadif(datainicial;hoje();"Y")&"ano".
    Fiz tal e qual sem a ultima parte &" ano" e não funcionou. São coisas da Microsoft..

    ResponderExcluir
  17. Como faço para somar os resultados. Exemplo:

    2anos, 3meses e 20dias
    +
    11anos, 7meses e 5dias

    Esses resultados foram obtidos com a função DATADIF.
    Sempre que uso a função =SOMA(), o resultado retornado é 0(zero).

    Att.,
    José Nascimento.

    ResponderExcluir
  18. Companheiro José Nascimento, nesse caso, você teria que converter tudo para dia. Ou seja, você primeiro somaria todos os dias. Depois multiplicava os meses por 30 e também os somava. Depois multiplicava os anos por 365 e os somava. Por fim, você teria um valor em dias. Basta, por fim, dividir esse valor obtido por 365 e fazer as operações necessárias para obter os valores para ano, mês e dia.

    Resumidamente essa é a solução. Caso você não consiga resolver seu problema. Envie-me um email e tento ajudá-lo melhor.

    ResponderExcluir
  19. Qual o codigo fonte dessa função em VB?

    ResponderExcluir
  20. No VB ela tem o nome de DIFDATA. Você digita lá no VB DIF e usa o autocompletar que o editor mostrará para você as opções disponíveis.

    Os parâmetros são os mesmos dos vistos no exemplo acima.

    ResponderExcluir
  21. Olá!
    A fórmula tanto com = TEXTO(DATADIF(A1;B1;”Y”... , quanto com o =DATADIF(A1;B1;”Y”... está dando certo. No entanto minha dificuldade é a formatação de 1 mês ficar como "1 mês" mesmo e não "1 meses" e assim para 1 ano ou 1 dia, em vez de sair tudo no plural (ex: 1 meses). Alguém poderia me ajudar com isso?
    Grata, Teca

    ResponderExcluir
  22. gostaria de receber orientações sobre datadif, pois fiz a tabela de calculo e preciso somar os anos meses e dias de todos os períodos lançados na tabela.
    a fórmula utilizada foi =DATADIF(0;J2;"y")&"anos,"&DATADIF(0;J2;"ym")&"meses,"&DATADIF(0;J2;"md")&"dias."... agora preciso somar a coluna dos resultados individuais e conseguir o resultado total...

    ResponderExcluir
  23. Olá, gostaria de saber se há mais funções que não são listadas pelo Excel. Desde já agradeço!

    ResponderExcluir
  24. Olá, se a célula A1<>0 aparecerá a data atual na célula A2. Que fórmula devo usar?
    Desde já agradeço!

    ResponderExcluir
  25. Ou melhor, quando eu inserir qualquer dado na célula A1 aparecerá da data atual na A2.

    ResponderExcluir
  26. Muito boa sua dica, foi de grande utilidade.

    ResponderExcluir
  27. Ola, pessoal, em primeiro lugar, muito bom o forum, parabens. Estou aqui de "gaiato no navio", na medida em que sou editor de livros e estou procurando ajuda para gerar a automacao de uma planilha com a funcao DATADIF do Excel e, assim, acabei caindo neste forum e gostando dele. Enfim, se alguem puder me ajudar, sou antecipadamente grato ao extremo. O problema e o seguinte: quero subtrair uma determinada quantidade de dias uteis no calendario brasileiro (excluindo feriados e findes etc.). Isso e possivel no Excel? Obrigado e abs a todos!

    ResponderExcluir
  28. oi
    existe alguma maneira de em uma planilha onde se coloca valores manualmente esta mesma celula ter como mudar de cor conforme o tempo. por exemplo se o valor que coloquei esta nesta celula por um e dois dias verde se ja ter ttres dias amarelo e do quarto dia em diante vermelho .isso pode ser feito.
    agradeço
    carlos
    carlosgamajr@hotmail.com

    ResponderExcluir