Converter números em palavras no Excel – Um guia abrangente
Converter números em palavras escritas é frequentemente necessário para relatórios financeiros, documentos legais, faturas ou cheques. Embora o Excel não ofereça essa funcionalidade nativamente, existem várias maneiras confiáveis de alcançar isso, desde funções integradas do Microsoft 365 até funções definidas pelo usuário em VBA e poderosas extensões de terceiros. Este guia abrangente percorre cada método, destaca suas vantagens e limitações, e ajuda você a escolher a melhor abordagem para suas necessidades específicas.

- Usar novas funções embutidas (somente Microsoft 365)
- Usar função definida pelo usuário em VBA
- Usar Kutools para Excel com alguns cliques
Métodos para converter números em palavras no Excel
Esta seção apresenta três métodos eficazes para converter números monetários em palavras no Excel. Escolha aquele que melhor se adapta à sua versão do Excel e ao seu caso de uso.
Método 1: Usar novas funções embutidas (somente Microsoft 365)
Se você estiver usando o Excel para Microsoft 365, pode aproveitar a nova função TRANSLATE para converter facilmente números monetários em palavras usando uma combinação criativa de fórmulas.
Como mostrado na captura de tela abaixo, para converter os números monetários no intervalo A2:A5 em palavras, você pode aplicar a seguinte fórmula para realizar a tarefa.
- Selecione uma célula em branco (por exemplo, B2), insira a fórmula abaixo. =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
- Pressione "Enter" e arraste a "Alça de Preenchimento" para baixo para aplicá-la às outras linhas.
Como a fórmula funciona:
- BAHTTEXT: Converte o número em texto em Thai-baht (por exemplo, “หนึ่งบาทถ้วน”).
- TRANSLATE(...,"th","en"): Traduz o texto de um idioma para outro (requer Microsoft 365). Neste caso, traduz do tailandês para o inglês.
- LOWER(): Converte toda a string para minúsculas para consistência.
- SUBSTITUTE(): Substitui palavras de moeda como "baht" e "satang" pelos termos desejados.
- PROPER(): Coloca a primeira letra de cada palavra em maiúscula para formatação adequada.
Adaptar para outras moedas:
A fórmula acima gera dólares americanos. Você pode personalizá-la para outras moedas substituindo as unidades principais e secundárias:
- Substitua "dollars" pela unidade principal da sua moeda alvo, como "pounds" para libras britânicas.
- Substitua "cents" pela unidade secundária, como "pence" para libras britânicas.
A tabela a seguir lista moedas compatíveis e as fórmulas correspondentes que você pode usar:
Moeda | Substituição da Unidade Principal | Substituição da Unidade Secundária | Exemplo de Fórmula (Assumindo que o valor está na célula A2) |
---|---|---|---|
USD | dollars | cents | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dollars"),"satang","cents")) |
GBP | pounds | pence | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","pounds"),"satang","pence")) |
EUR | euros | cents | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","cents")) |
MYR | ringgit | sen | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen")) |
Limitações deste método:
- Funciona apenas no Excel para Microsoft 365 (devido à função TRANSLATE()).
- A saída depende muito da precisão da formatação da função BAHTTEXT().
- Este método é adequado para moedas que, como o Baht Tailandês, possuem tanto uma unidade principal quanto uma subunidade (por exemplo, dólares e centavos). Não é recomendado para moedas que não seguem uma estrutura monetária semelhante.
Método 2: Usar função definida pelo usuário em VBA
Nesta seção, você aprenderá como usar uma Função Definida pelo Usuário (UDF) baseada em VBA para converter valores numéricos em palavras de moeda em inglês — adaptada especificamente para dólares americanos (USD) por padrão.
Passo 1: Inserir código VBA
- Abra a planilha onde deseja usar este recurso.
- Pressione "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".
- No editor, clique em "Inserir" > "Módulo", e cole o seguinte código VBA.
Function SpellNumberToEnglish(ByVal pNumber) 'Update by Extendoffice Dim Dollars, Cents arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ") pNumber = Trim(Str(pNumber)) xDecimal = InStr(pNumber, ".") If xDecimal > 0 Then Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2)) pNumber = Trim(Left(pNumber, xDecimal - 1)) End If xIndex = 1 Do While pNumber <> "" xHundred = "" xValue = Right(pNumber, 3) If Val(xValue) <> 0 Then xValue = Right("000" & xValue, 3) If Mid(xValue, 1, 1) <> "0" Then xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred " End If If Mid(xValue, 2, 1) <> "0" Then xHundred = xHundred & GetTens(Mid(xValue, 2)) Else xHundred = xHundred & GetDigit(Mid(xValue, 3)) End If End If If xHundred <> "" Then Dollars = xHundred & arr(xIndex) & Dollars End If If Len(pNumber) > 3 Then pNumber = Left(pNumber, Len(pNumber) - 3) Else pNumber = "" End If xIndex = xIndex + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumberToEnglish = Dollars & Cents End Function Function GetTens(pTens) Dim Result As String Result = "" If Val(Left(pTens, 1)) = 1 Then Select Case Val(pTens) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else Select Case Val(Left(pTens, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit(Right(pTens, 1)) End If GetTens = Result End Function Function GetDigit(pDigit) Select Case Val(pDigit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function
- Pressione "Alt" + "Q" para voltar à planilha.
Passo 2: Aplicar a função
- Em uma célula, insira a fórmula abaixo e pressione "Enter". =SpellNumberToEnglish(A2)
- Depois, arraste a alça de preenchimento para aplicá-la a outras linhas conforme necessário. Seus números agora serão convertidos em palavras como:
Adaptar para outras moedas:
A função gera valores em "Dollar(s)" e "Cent(s)", que estão codificados apenas para USD. Se você quiser converter números em outras moedas, por exemplo, "Libra Esterlina", precisa alterar manualmente as unidades principais e secundárias nas seguintes linhas de código.

Salvar a pasta de trabalho como um arquivo habilitado para macros
Por padrão, funções VBA não serão mantidas a menos que a pasta de trabalho seja salva como uma pasta de trabalho habilitada para macros:
- Pressione "Ctrl" + "S" para salvar.
- E selecione o botão "Voltar" na mensagem pop-up sobre macros. Nota: Se o pop-up mostrar apenas "Sim", "Não" e "Ajuda", clique em "Não".
- Na janela "Salvar Como".
- Escolha um local para salvar.
- Selecione "Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm)" na lista suspensa "Salvar como tipo".
- Clique em "Salvar".
Limitações da função SpellNumberToEnglish em VBA
- Esta função gera resultados apenas em inglês.
- Não suporta outros idiomas (por exemplo, francês, alemão), nem lida com estruturas de moedas onde a unidade monetária vem antes do número (por exemplo, "Rúpias Cem" em inglês indiano).
- Se você não salvar a pasta de trabalho como uma pasta de trabalho habilitada para macros (.xlsm), a função será perdida quando você fechar o Excel.
- Se for salva como um arquivo .xlsx normal, todo o código VBA será removido.
- Enviar o arquivo habilitado para macros para outros irá disparar um aviso de "Aviso de Segurança - Macros foram desativadas" quando aberto.
- Alguns usuários podem hesitar em ativar macros, temendo riscos de segurança potenciais, e podem optar por não usar o arquivo.
- Quaisquer mudanças nos termos de moeda ou formatação exigem edição manual do código VBA.
- Não ideal para usuários não familiarizados com macros ou scripts.
Método 3: Usar Kutools para Excel (sem fórmulas ou VBA necessário)
Se você instalar "Kutools para Excel", use seu recurso "Números para Palavras" para converter números em inglês (moeda ou texto simples), além de dezenas de outros idiomas e moedas como EUR, GBP, JPY, etc.
Se você está procurando uma solução amigável, fácil de usar e versátil para converter números em palavras no Excel sem código, o Kutools para Excel oferece um recurso dedicado de "Números para Palavras" que suporta:
- Inglês (USD, GBP, EUR, etc.)
- Dezenas de outros idiomas e moedas (por exemplo, iene japonês, rupia indiana, yuan chinês)
- Formato de moeda ou palavras simples (por exemplo, "Cento e Vinte-Três" em vez de "Cento e Vinte-Três Dólares")
Passos para usar:
- Selecione as células que contêm os números que você deseja converter.
- Selecione "Kutools" > "Texto" > "Números para Palavras".
- Na caixa de diálogo "Números para Palavras de Moeda", você precisa:
- Escolha o idioma e o estilo de moeda que preferir (por exemplo, inglês – Estados Unidos para USD)
- Clique em "OK".
Opcional: Marque "Não converter em moeda" se quiser palavras simples em inglês (sem "dólares" ou "centavos").
Os números selecionados agora serão convertidos nas palavras de moeda apropriadas, dependendo das suas configurações.
Kutools para Excel - Potencialize o Excel com mais de 300 ferramentas essenciais. Aproveite recursos de IA permanentemente gratuitos! Obtenha Agora
Operação inversa: Converter palavras de moeda em números
Se você tiver uma lista de valores monetários escritos em palavras em inglês, como:
e quiser convertê-los em números reais no Excel (por exemplo, 123,45), pode usar uma função personalizada VBA User Defined Function (UDF) da seguinte forma.

Passo 1: Abra o Editor VBA e insira o código VBA
- Abra sua pasta de trabalho do Excel.
- Pressione "Alt" + "F11" para abrir o editor "Microsoft Visual Basic for Applications (VBA)".
- No editor VBA, clique em "Inserir" > "Módulo".
- Copie e cole o seguinte código VBA na janela de módulo em branco:
Function WordsToNumber(ByVal Txt As String) As Double 'Updated by Extendoffice Dim x As Object: Set x = CreateObject("Scripting.Dictionary") Dim units, tens, specials Dim part As String, parts() As String Dim total As Double, partial As Double, multiplier As Double Dim i As Long, word As String Txt = LCase(Trim(Txt)) Txt = Replace(Txt, ",", "") Txt = Replace(Txt, "-", " ") Txt = Replace(Txt, " and ", " ") Txt = Replace(Txt, " ", " ") ' Setup basic number words x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3 x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7 x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11 x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14 x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17 x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20 x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50 x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80 x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000 x.Add "million", 1000000: x.Add "billion", 1000000000 Dim dollarPart As String, centPart As String Dim dollarValue As Double, centValue As Double ' Split into dollars and cents If InStr(Txt, "dollar") > 0 Then dollarPart = Trim(Split(Txt, "dollar")(0)) End If If InStr(Txt, "cent") > 0 Then centPart = Trim(Split(Txt, "cent")(0)) If InStr(centPart, "dollar") > 0 Then centPart = Trim(Split(centPart, "dollar")(1)) End If End If dollarValue = ParseWordsToNumber(dollarPart, x) centValue = ParseWordsToNumber(centPart, x) WordsToNumber = dollarValue + centValue / 100 End Function Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double Dim parts() As String: parts = Split(Txt, " ") Dim total As Double, current As Double Dim i As Long, val As Double For i = 0 To UBound(parts) If x.exists(parts(i)) Then val = x(parts(i)) Select Case val Case 100 If current = 0 Then current = 1 current = current * val Case Is >= 1000 If current = 0 Then current = 1 total = total + current * val current = 0 Case Else current = current + val End Select End If Next i total = total + current ParseWordsToNumber = total End Function
Passo 2: Aplique a função na sua planilha
- Pressione "Alt" + "Q" para retornar ao Excel.
- Em qualquer célula vazia, insira esta fórmula e pressione "Enter". Arraste a "Alça de Preenchimento" para baixo para obter os resultados restantes. =WordsToNumber(A2)
Conclusão
Converter números em palavras — ou palavras de volta para números — não é algo que o Excel ofereça nativamente, mas este guia mostrou que existem várias soluções práticas dependendo das suas necessidades:
- Usuários do Microsoft 365 podem aproveitar funções modernas embutidas como TRANSLATE para converter números monetários em palavras em inglês com fórmulas, especialmente para moedas que seguem uma estrutura de "principal + subunidade".
- Funções definidas pelo usuário em VBA oferecem maior flexibilidade tanto para converter números em palavras quanto para reverter palavras de moeda de volta para valores numéricos. No entanto, elas trazem preocupações de segurança relacionadas a macros e são mais adequadas para usuários familiarizados com codificação.
- O Kutools para Excel oferece a opção mais fácil, multilíngue e rica em recursos — sem necessidade de fórmulas ou codificação, cobrindo dezenas de moedas e idiomas.
- Se você precisar reverter palavras de volta para números, a solução VBA preenche essa lacuna de forma eficaz, embora possa exigir limpeza (por exemplo, remover vírgulas) para resultados precisos.
Seja preparando documentos financeiros, automatizando a impressão de cheques ou simplesmente aprimorando a apresentação de dados, escolher o método certo ajuda você a alcançar saídas profissionais e precisas.
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo.Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface de abas para o Office e facilita muito seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas da mesma janela, em vez de novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!