Edu Tognon

Apesar de aparentemente bastante simples, a função HOJE, cujo propósito é retornar sempre a data atual no Excel, torna-se poderosa em conjunto com outras funções, permitindo que você crie cálculos dinâmicos e até complexos que precisem usar a data atual como parâmetro.

Neste artigo vamos aprender a sintaxe da função HOJE, como formatar seu resultado, como realizar operações com dias passados e futuros e ainda veremos dois exemplos de uso prático: obtendo status de validade de lotes de produtos e status de prazos de projetos. 

Versão em vídeo

Versão do Excel utilizada na aula: Microsoft Excel 365 [versão 2202]

Download dos arquivos

Você pode baixar os arquivos utilizados no tutorial em vídeo. O arquivo inicial refere-se ao arquivo sem as modificações, ideal para praticar o passo a passo e treinar suas habilidades. O arquivo pronto é o arquivo final, com todas as modificações ensinadas já aplicadas, ideal se você já quiser ter em mãos o resultado. 

Para baixar os arquivos, acesse a página de download e clique no botão Baixar

Inscreva-se para receber novos arquivos, aulas, artigos e dicas por e-mail! 

Ao se cadastrar, você aceita nossos Termos de Uso e Serviço e nossa Política de Privacidade.

Versão em texto / ilustrada

Versão do Excel utilizada neste tutorial: Microsoft Excel 365 [versão 2202]

Sintaxe da função HOJE e formatações de data

A função HOJE é uma das poucas funções do Excel que não exigem absolutamente nenhum argumento; entretanto, é necessário abrir e fechar parênteses para que ela funcione. Sua sintaxe básica, portanto, é apenas: 

=HOJE() 

Ao ser digitada em uma célula, retornará a data atual. 

Sintaxe básica da função HOJE

É necessário que você considere, para efeito de aprendizado, a data 21/03/2022 como a data atual, momento em que nosso tutorial foi montado. Como essa função é atualizada automaticamente, sempre retornará a data atual assim que sua planilha for aberta. 

Tratando-se de uma data, o resultado pode ser formatado de acordo com diversos tipos de formatação de dados. No exemplo abaixo, vemos a função HOJE sendo replicada em diversas células, mas cada qual exibindo a mesma data de maneira diferente. 

Diferentes formatos de data aplicados à data atual

Para alterar o modo de exibição de uma data, basta que, com a célula em questão selecionada, cliquemos na setinha que abre a caixa de diálogo do grupo Número, presente na guia Página Inicial

Clique na setinha do grupo Número

Dentro da aba Número, podemos escolher, entre as categorias, o formato Data, no painel à esquerda. No painel à direita, veremos todos os formatos de data disponíveis para esse grupo. 

Formatos de datas da categoria Data

Basta escolher um formato de data e pressionar o botão OK para que a data seja mostrada de acordo com essa máscara. 

No entanto, caso não encontre o modelo ideal dentro dessa categoria (ou queira criar um modelo personalizado de exibição), utilize a categoria Personalizado. Essa categoria engloba formatos mais específicos mascarados por códigos. Ao selecionar um tipo de exibição na tabela de tipos, você pode conferir um exemplo de como o valor de sua célula se comportará na caixa Exemplo, logo acima. 

Você também pode editar um formato selecionado ou mesmo criar um usando a edição dentro da caixa Tipo. No exemplo abaixo criamos um formato de data usando a máscara dd.mm.aaaa (dias com dois dígitos, meses com dois dígitos e anos com quatro dígitos, todos separados por um ponto). 

Formato de data personalizado

Usando a primeira planilha de exemplo, confira, ao lado, alguns formatos de data utilizados: 

Alguns formatos de data codificados

Conheça algumas dessas máscaras que você pode usar em suas datas: 

  • d – dia com um dígito (ou dois, quando houver dois); 
  • dd – dia com dois dígitos (preenchendo 0 em dias com um algarismo); 
  • ddd – dia da semana abreviado (dom, seg, ter…); 
  • dddd – dia da semana por extenso (domingo, segunda-feira, terça-feira…); 
  • m – mês com um dígito (ou dois, quando houver dois); 
  • mm – mês com dois dígitos (preenchendo 0 em meses com um algarismo); 
  • mmm – mês abreviado (jan, fev, mar…); 
  • mmmm – mês por extenso (janeiro, fevereiro, março…); 
  • aa – ano com dois dígitos; 
  • aaaa – ano com quatro dígitos. 

Calculando dias passados e futuros

Toda data no Excel é vista como um número inteiro, portanto, sendo um número, pode ser usada em diversos cálculos matemáticos. Fazendo uso da função HOJE, podemos calcular quantos dias se passaram de uma determinada data até a data atual, e também quantos dias faltam da data atual até uma data futura. Tudo é feito, basicamente, com uma simples operação de adição ou subtração. 

Calculando dias passados

=HOJE()-C4 

Na planilha acima, nossa fórmula em D4 subtrai a data presente em C4 da data atual. De fato, do dia 21/02/2022 ao dia de hoje (considerando 21/03/2022 como a data atual), passaram-se 30 dias. 

Da mesma forma, podemos calcular os dias futuros, mas, nesse caso, nossa lógica se inverte: precisamos subtrair a data de hoje de uma data futura. 

=F4-HOJE()

Calculando dias futuros

Somando e subtraindo dias com a função HOJE

Podemos também somar dias à data atual ou subtrair uma quantidade de dias dessa data. Na planilha abaixo conseguimos acompanhar os dois exemplos. 

=HOJE()+I4 – Soma a data de hoje ao número de dias presente na célula I4 

=HOJE()-L4 – Subtrai o número de dias presente na célula L4 da data de hoje

Exemplos de soma e subtração de dias

Exemplo 1: Calculando status de vencimento com as funções HOJE e SES

Observe a planilha abaixo. Temos uma lista de lotes com suas respectivas datas de vencimento. Na coluna C, exibiremos o texto “No prazo” para lotes que ainda estejam dentro do prazo e “Vencido” para aqueles cuja data de vencimento foi ultrapassada. 

Status de vencimento a ser calculado com a função HOJE

Como estamos lidando com testes condicionais, podemos usar, por exemplo, as funções SE ou SES. Em nosso caso, vamos usar a SES, mas é possível realizar esse mesmo tipo de cálculo com a função SE

Nossa lógica é a seguinte: se a data de vencimento for igual ou maior que a data atual, o lote ainda não está vencido; em contrapartida, se a data for menor (anterior) à data atual, o lote está vencido. 

=SES(B4=””;“”;B4>=HOJE();“No prazo”;B4<HOJE();“Vencido”

Antes de tudo, podemos, como nesse caso, testar se a célula responsável pela data está vazia ou não (B4=””). Se estiver, o Excel deixará a célula de status também vazia (“”). 

O segundo teste da função SES analisa se a data inserida em B4 é maior ou igual à data de hoje (B4>=HOJE()). Em caso afirmativo, o Excel exibirá na célula de status o texto “No prazo“. Como se trata de um texto, ele precisa vir entre aspas duplas. No entanto, se preferir, você pode realizar uma operação como resultado, ou inserir outra função, ou mesmo fazer referência a alguma célula. 

Se esse teste não for verdadeiro, o Excel então analisará a próxima condição. Se a data de vencimento for menor que a data de hoje (B4<HOJE()), o Excel mostrará o texto “Vencido” na célula. 

Aplicando autopreenchimento, obteremos o resultado para todas as linhas. 

Resultado dos status de vencimento com base na data atual

Esta categorização permite que você aplique filtros para classificar seus dados e também formatação condicional, para visualizá-los de forma personalizada. 

Exemplo 2: Calculando prazos e exibindo texto personalizado com as funções HOJE e SES

A planilha abaixo é um pouco mais complexa. Aqui vamos calcular os status de alguns projetos, mas utilizando frases personalizadas. Por exemplo, se um projeto está atrasado há 3 dias, o Excel deve exibir a frase “3 dias de atraso”; se ainda faltam 2 dias para o prazo, “2 dias pendentes”; se o prazo for exatamente o dia de hoje, “Último dia”. 

Prazo de projetos a ser calculado com a função HOJE

Por mais que pareça complexa, a situação é bem simples de ser entendida e transformada em fórmula, usando novamente as funções HOJE e SES. 

=SES(F4=””;“”;F4=HOJE();“Último dia”;F4<HOJE();HOJE()-F4&” dia(s) de atraso”;F4>HOJE();F4-HOJE()&” dia(s) pendente(s)”

Assim como no exemplo anterior, vamos antes testar se a célula está vazia. Se sim, o Excel exibe também um resultado vazio. 

Em seguida, podemos testar se a célula que contém o prazo é igual à data atual (F4=HOJE()). Se sim, nosso resultado será o texto “Último dia“. 

O próximo teste analisa se o prazo é menor que a data de hoje (F4<HOJE()). Se sim, o Excel agora precisa calcular de quantos dias é esse atraso, ou seja, esse cálculo só será executado se, de fato, a data do prazo for anterior à data atual. Nesse caso, iremos subtrair do dia atual a data que marca o prazo do projeto (HOJE()-F4). Em seguida, uniremos esse número com um texto personalizado (referente aos dias de atraso), e, para fazer essa união, precisamos concatenar o resultado do cálculo com nosso texto, usando o sinal de concatenação (&). Como se trata de um texto, deve ser inserido entre aspas duplas. 

Caso o teste não seja verdadeiro, o Excel analisa então o próximo: se o prazo é maior que a data atual (F4>HOJE()). Se sim, o Excel então subtrai a data de hoje da data do prazo (F4-HOJE()), e concatena (&) esse resultado com um texto referente aos dias pendentes. 

Usando o autopreenchimento, obtemos os demais resultados. 

Resultado dos status de prazo com base na data atual
Aprenda o que quiser. Milhares de cursos incríveis para escolher.

Dicas e informações complementares

  • A função HOJE retorna a data atual do seu computador, portanto, se essa data estiver errada, a função retornará também uma data errada. 
  • Por ser uma função que é atualizada automaticamente toda vez que uma planilha é aberta ou uma modificação é realizada no arquivo, é normal que, mesmo não tendo realizado nenhuma alteração em seu arquivo, o Excel peça para salvar alterações em sua planilha, caso você esteja fazendo uso da função HOJE nela. 
  • Por retornar apenas o dia atual, ao formatar sua data com formatos de dados que exibem também a hora, você não obterá a hora atual. Para isso, utilize a função AGORA