Função FIM.MÊS no Excel: Como Achar o Último Dia do Mês Automaticamente

Você já precisou calcular a data de vencimento de um boleto que sempre cai no último dia do mês, e ficou na dúvida se fevereiro tinha 28 ou 29 dias naquele ano específico? Ou precisou montar uma coluna de “data de fechamento” que muda de 30, para 31, para 28 dias dependendo do mês, e criou uma fórmula cheia de SE para dar conta de cada caso?

Calcular manualmente o último dia de cada mês é o tipo de coisa que parece simples até esbarrar em fevereiro, ou em anos bissextos, ou em meses de 30 dias. Uma fórmula com vários SE aninhados pra cobrir cada caso funciona, mas é fácil esquecer uma exceção.

Neste artigo vamos mostrar como a função FIM.MÊS resolve isso, calculando o último dia de qualquer mês automaticamente, incluindo anos bissextos, sem precisar de nenhum SE.

O que é a função FIM.MÊS

FIM.MÊS (equivalente à EOMONTH na versão em inglês) retorna a data do último dia do mês, a partir de uma data de referência e de quantos meses você quer avançar ou voltar.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

A sintaxe é:

=FIM.MÊS(data_inicial; meses)

  • data_inicial: a data de referência a partir da qual calcular
  • meses: quantos meses avançar (número positivo) ou voltar (número negativo) a partir da data inicial; 0 usa o mesmo mês da data inicial

Exemplo prático

Para saber o último dia do mês atual, a partir de hoje:

=FIM.MÊS(HOJE(); 0)

Se hoje for 15 de julho de 2026, o resultado é 31/07/2026 — o Excel já sabe que julho tem 31 dias, sem você precisar informar isso.

Calculando vencimentos futuros

Para calcular o último dia do próximo mês (útil para vencimentos de boletos ou faturas), basta trocar o segundo argumento para 1:

=FIM.MÊS(HOJE(); 1)

E para o último dia de dois meses atrás, use -2:

=FIM.MÊS(HOJE(); -2)

Isso funciona para qualquer quantidade de meses à frente ou atrás, incluindo virar o ano — de dezembro para janeiro, por exemplo, sem precisar de nenhum tratamento especial.

Montando um calendário de vencimentos

Uma aplicação prática é gerar uma lista de vencimentos mensais de uma vez, combinando FIM.MÊS com SEQUÊNCIA. Para gerar o último dia de cada um dos próximos 6 meses a partir de hoje:

=FIM.MÊS(HOJE(); SEQUÊNCIA(6; 1; 0; 1))

Lista de vencimentos mensais gerada com FIM.MÊS e SEQUÊNCIA

O SEQUÊNCIA gera os números 0, 1, 2, 3, 4 e 5, e a FIM.MÊS calcula o último dia de cada um desses meses de uma vez, derramando a lista inteira em uma fórmula só — sem precisar copiar a fórmula linha por linha.

Lidando com anos bissextos

A grande vantagem da FIM.MÊS é que ela já resolve o problema de fevereiro sozinha. Para uma data de referência em fevereiro de um ano bissexto, a fórmula retorna 29/02; em um ano comum, retorna 28/02 — automaticamente, sem você precisar saber de antemão se aquele ano específico é bissexto.

Achando o primeiro dia do mês (com um ajuste)

Embora o nome da função seja “fim de mês”, ela também serve de base para calcular o primeiro dia do mês seguinte ou do mês atual, somando 1 dia ao resultado do mês anterior:

=FIM.MÊS(HOJE(); -1) + 1

Isso pega o último dia do mês anterior e soma 1, chegando exatamente no primeiro dia do mês atual — um jeito indireto, mas confiável, de calcular isso sem depender de saber quantos dias cada mês tem.

Combinando com DIA.DA.SEMANA para vencimento em dia útil

Em boletos e faturas, é comum o vencimento não poder cair em fim de semana. Para empurrar o vencimento para a sexta-feira anterior quando o último dia do mês cai em sábado ou domingo, combine FIM.MÊS com DIA.DA.SEMANA:

=SE(DIA.DA.SEMANA(FIM.MÊS(HOJE();0);2)>5; FIM.MÊS(HOJE();0)-(DIA.DA.SEMANA(FIM.MÊS(HOJE();0);2)-5); FIM.MÊS(HOJE();0))

O DIA.DA.SEMANA com o segundo argumento 2 numera de 1 (segunda) a 7 (domingo); quando o resultado é maior que 5 (sábado ou domingo), a fórmula subtrai os dias necessários para voltar à sexta-feira anterior.

FIM.MÊS vs fórmula manual com SE

✅ FIM.MÊS é sempre mais confiável do que qualquer fórmula manual tentando calcular o último dia do mês, porque já lida com meses de 28, 29, 30 e 31 dias automaticamente
❌ Não existe cenário comum em que valha a pena montar essa lógica na mão em vez de usar a função — é um dos casos mais claros de “usar a função pronta em vez de reinventar”

Erro comum

O erro mais comum é confundir a ordem dos argumentos, pensando que o segundo argumento é “quantos dias” em vez de “quantos meses”. Outro erro é esquecer que a data_inicial precisa ser uma data reconhecida como tal pelo Excel — se a célula de referência tiver a data como texto, em vez de valor de data, a fórmula pode retornar erro ou um resultado incorreto.

Calculando a idade de um mês em dias

Outra aplicação prática é descobrir quantos dias tem o mês de uma data qualquer, útil em relatórios que precisam ajustar médias diárias pelo tamanho do mês (fevereiro tendo menos dias que março, por exemplo). Basta subtrair o primeiro dia do mês do último:

=FIM.MÊS(A1;0) – (FIM.MÊS(A1;-1)+1) + 1

Isso pega o último dia do mês da data em A1, subtrai o primeiro dia daquele mesmo mês (calculado a partir do fim do mês anterior mais um dia), e soma 1 para incluir o próprio primeiro dia na contagem. O resultado é sempre 28, 29, 30 ou 31, dependendo do mês e do ano exatos daquela data — sem precisar de tabela de referência nem fórmula com SE para cada caso.

Disponibilidade

FIM.MÊS é uma função clássica, disponível desde o Excel 2007 (em versões anteriores, exigia o suplemento “Ferramentas de Análise” ativado) e presente em todas as versões desde então — 365, Online, Mac e Google Sheets (com o mesmo nome, EOMONTH, na versão em inglês da planilha).

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como usar a função FIM.MÊS para calcular o último dia do mês automaticamente, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já teve algum problema com cálculo de vencimento em fevereiro por causa de ano bissexto? Vai usar FIM.MÊS pra quê na sua planilha? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *