Convertendo nomes de meses para números: o que funciona e o que dá errado
Muita gente procura que mes estamos em numero e encontra uma porção de tutoriais genéricos que explicam o óbvio sem mencionar os problemas reais que aparecem na prática. Vou direto ao ponto.
que mes estamos em numero
A conversão de nomes de meses para números é basicamente um mapeamento: janeiro vira 1, fevereiro vira 2, e assim por diante. Parece trivial até você se deparar com dados sujos, formatos regionais diferentes ou planilhas que misturam línguas. Aí o negócio complica. No Excel, a função mais usada é TEXTO() combinada com formatação de data, ou então MÊS() se você já tiver uma data válida. A fórmula =MÊS(A1) retorna o número do mês contido na célula A1. Se A1 tiver "15/03/2024", o resultado é 3. Funciona. Mas só funciona se a célula realmente conter uma data reconhecida pelo sistema.
Problema real: dados copiados da internet, exportações de sistemas legados, ou formulários preenchidos manualmente frequentemente chegam como texto puro. "Março de 2024", "Mar/24", "03-2024", "March 2024". O Excel não reconhece tudo como data automaticamente. Já perdi horas tentando usar MÊS() em colunas onde os valores pareciam datas mas eram, na verdade, texto disfarçado. A função retornava #VALOR! e você fica olhando pra célula sem entender nada até perceber que a formatação era incompatível. A solução que uso agora é mais trabalhosa mas evita dor de cabeça. Primeiro, padronizo tudo com TEXTO() para garantir que o formato seja reconhecido. Depois, uso uma tabela auxiliar de mapeamento manual quando os dados vêm em formatos erráticos:
👉 Clique no botão abaixo para saber mais sobre o assunto!
=CORRESP(ESQUERDA(A1;3);{"Jan";"Fev";"Mar";"Abr";"Mai";"Jun";"Jul";"Ago";"Set";"Out";"Nov";"Dez"};0) Essa abordagem com CORRESP (ou MATCH, em inglês) é mais verbosa mas funciona independentemente do idioma do sistema ou do formato de entrada. O único detalhe é que você precisa garantir que o padrão de abreviação seja consistente nos seus dados. Se alguém escreveu "Mch" ao invés de "Mar", a função falha silenciosamente e retorna um erro #N/D que pode passar despercebido em planilhas grandes.
No Google Sheets, a situação é similar mas com uma diferença importante: a função MONTH() também exige datas válidas, e o tratamento de strings é ligeiramente mais flexível com funções como REGEXEXTRACT(). Se você tiver datas no formato "2024-03-15" (ISO 8601), o Sheets converte automaticamente. Se forem "15/03/2024", depende da configuração regional da planilha. Configuração regional é outro ponto que as pessoas ignoram até levar susto. Uma planilha configurada para PT-BR vai interpretar "03/01/2024" como 3 de janeiro. Uma configurada para en-US vai interpretar como 1 de março. O mesmo texto, resultados diferentes. Se o seu objetivo é simplesmente saber qual é o número do mês atual, sem trabalhar com bases de dados, a coisa fica ainda mais simples. Em JavaScript, new Date().getMonth() + 1 retorna o mês em número. Note o +1, porque o método getMonth() retorna de 0 a 11. É um detalhe que todo mundo esquece na primeira vez e passa dias debugando.
Em Python, a biblioteca datetime faz algo semelhante: datetime.date.today().month. Esse sim retorna 1-12 diretamente, sem precisar adicionar nada. Parece bobagem listar isso, mas já vi gente usando bibliotecas inteiras só pra descobrir que a solução padrão já fazia o que precisava. O que não consigo recomendar é confiar cegamente em fórmulas de conversão automática para produção. Dados reais raramente são limpos. Sempre valide o resultado. Uma verificação rápida com SE ERRO() no Excel ou IFERROR() no Sheets te salva de acumular erros silenciosos que só aparecem quando você gera o relatório final. E quando aparecem, já passou da hora de consertar.
Para quem precisa processar volumes maiores, o ideal é normalizar os dados numa etapa separada antes de aplicar qualquer lógica de conversão. Um script simples de limpeza que padroniza formatos, trata variações de idioma e substitui values ambíguos economiza muito mais tempo do que tentar corrigir tudo nas fórmulas finais. Na prática, esse processo costuma reduzir de cerca de 40 minutos para 8 minutos o tempo de preparação de uma base mensal típica, dependendo do grau de bagunça inicial. Se você tem um caso específico que não se encaixa nesses exemplos, o caminho mais seguro é sempre olhar para a fonte dos dados primeiro. Entender de onde vieram e em que formato chegaram resolve metade dos problemas antes mesmo de escrever uma linha de fórmula.