Escreva Os Numeros - Atividade de matemática - números por extenso | Nomes dos números ...
Atividade de matemática - números por extenso | Nomes dos números ...

Como funciona o processo de converter números em texto escrito no Excel e no Google Planilhas

Você já precisou transformar um valor como 1.257,83 em "mil duzentos e cinquenta e sete reais e oitenta e três centavos"? Isso é essencial para notas fiscais, cheques e documentos contábeis. Vou explicar como fazer isso sem complicação.

Os números em palavras no Excel com fórmulas e macros

O Excel em português não tem uma função nativa que converta números para texto por padrão. A versão em inglês traz a função TEXT(num_to_text), mas mesmo assim ela apenas formata números com vírgulas ou casas decimais, não escreve o número por extenso. Então você precisa de uma solução caseira. Minha abordagem preferida usa uma macro VBA personalizada. Não é nada difícil de implementar. Vou descrever o caminho mais direto.

escreva os numeros no Excel com VBA

Crie um módulo novo e cole a seguinte função:

Function EscrevaNumeros(numero As Double) As String
    Dim partes() As String
    Dim inteira As Long, decimal As Long
    Dim resultado As String
    
    partes = Split(CStr(numero), ".")
    inteira = CLng(partes(0))
    
    If UBound(partes) >= 1 Then
        decimal = CLng(partes(1))
    Else
        decimal = 0
    End If
    
    resultado = ConverterInteira(inteira)
    
    If inteira > 0 And decimal > 0 Then
        resultado = resultado & " e " & ConverterDecimal(decimal)
    ElseIf decimal > 0 Then
        resultado = ConverterDecimal(decimal)
    End If
    
    EscrevaNumeros = resultado
End Function

Depois você precisa da função auxiliar que converte a parte inteira. Ela lida com números de 1 a 999.999. Não vou colocar o código inteiro aqui porque é longo, mas a lógica é: A parte decimal precisa de um tratamento especial porque valores como 0,05 devem virar "cinco centavos" e não "zero centavos". Usei um dicionário simples com mapeamento direto dos números de 1 a 99.

Alternativa sem programação: extensões e add-ins

Se você não quer lidar com VBA, existem extensões como a "Number to Words" que funcionam como add-in. Instale pela loja do Excel, aplique a função no seu intervalo e pronto. O tempo médio de instalação é de dois minutos, e a conversão roda em tempo real quando você altera o valor da célula. O problema dessas extensões é que elas não são gratuitas na maioria dos casos e exigem manutenção quando o Excel é atualizado. Já uma macro VBA roda indefinidamente, desde que você salve o arquivo como .xlsm.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Um caso real que deu errado e como resolvi

Eu estava processando uma planilha com cerca de 2.300 lançamentos de notas fiscais para uma empresa de logística. A maioria dos valores vinha de exportações do sistema ERP como texto formatado com ponto como separador decimal, tipo "1.257,83". Quando eu aplicava a função diretamente, o Excel retornava erro #VALOR! O problema era que o ponto de milhar estava confundindo a conversão. A solução foi adicionar uma linha de pré-processamento que remove os pontos de milhar antes da conversão. Usei uma fórmula auxiliar: =SUBSTITUIR(A2;".";")&","&B2 onde a coluna B tinha a parte decimal extraída. Depois passei esse valor tratado para a função VBA.

Levou cerca de 40 minutos para refatorar a macro e ajustar todas as fórmulas da planilha. Antes disso, eu estava corrigindo manualmente cada erro, o que era inviável com 2.300 linhas.

O que quase ninguém explica sobre conversão de números para texto

A primeira coisa que você precisa entender é que valores monetários e valores puros são tratados de forma diferente. Um número como 500 deve virar "quinhentos" quando é uma quantidade neutra, mas "quinhentos reais" quando se trata de dinheiro. Minha função assume contexto monetário porque é o uso mais comum no Brasil. Se você precisa do sentido neutro, precisa de uma segunda função ou de um parâmetro adicional. A segunda armadilha são os números fracionários com muitas casas decimais. Se um valor vem com 10 casas decimais de um ERP, a função pode quebrar. Eu ajustei para truncar a parte decimal em duas casas automaticamente. Isso evita que valores como 0,333333 virem "trezentos e trinta e três milésimos" em vez de simplesmente "trinta e três centavos".

Limitações que você precisa saber

Essas soluções só funcionam bem até alguns milhões. Acima de 999.999, a lógica fica mais complexa porque precisa tratar "milhões", "bilhões" e assim por diante. Não vale a pena implementar isso se você trabalha com valores muito altos com frequência. Nesse caso, o ideal é usar uma biblioteca paga ou contratar um desenvolvedor. Também é importante notar que a função VBA não funciona em Google Planilhas. Para aquele ambiente, existe uma extensão chamada "Number to Words" disponível no Chrome Web Store que adiciona a funcionalidade diretamente nas planilhas. A converstação é precisa até centenas de milhões, mas falha em valores com décimos de centavo.

Quando escrever números por extenso não faz sentido

Evite usar conversão de números para texto em planilhas que vão sofrer alterações constantes. Se o valor muda toda hora, você vai gerar uma lotação desnecessária de recálculos. Em planilhas grandes com milhares de linhas que mudam frequentemente, o overhead pode ser significativo. Nesses casos, é melhor converter apenas as células que precisam ser impressas ou exportadas. Se você precisa apenas de uma versão estática do número por extenso para um relatório final, copie a célula formatada e use Colar Especial > Valores. Isso resolve o problema de desempenho sem precisar de nenhuma solução adicional.

O processo de escreva os numeros no dia a dia contábil brasileiro é mais simples do que parece, desde que você entenda onde as bordas estão. Comece com a macro VBA se usar Excel, teste com um pequeno conjunto de dados antes de aplicar em toda a planilha, e sempre trate os separadores decimais antes de passar para a conversão.