Convertendo Números em Palavras em Rúpias Indianas e Outras Moedas no Excel (Edição 2025)
Aqui está como converter números em palavras em Rúpias Indianas — ou qualquer outra moeda — no Excel.
Ao trabalhar com documentos financeiros, como faturas, cotações, formulários de impostos, cheques ou vouchers de pagamento, é frequentemente necessário representar valores monetários tanto em formato numérico quanto em palavras escritas. Isso adiciona uma camada de profissionalismo e ajuda a prevenir fraudes ou mal-entendidos.
Exemplo
Embora o Microsoft Excel não tenha um recurso embutido para converter números em palavras, existem várias maneiras eficazes de conseguir isso — através de VBA, funções LAMBDA ou o complemento Kutools para Excel.
Converter Números em Palavras em Rúpias Indianas com VBA (Todas as Versões do Microsoft)
- Converter Números em Palavras em Outras Moedas (USD, EUR, etc.)
- Salvar Sua Pasta de Trabalho como um Arquivo Habilitado para Macro
Converter Números em Palavras em Rúpias Indianas com Função LAMBDA (Somente Microsoft 365)
Converter Números em USD, EUR e Mais de 30 Outras Moedas (Todas as Versões do Microsoft)
Converter Números em Palavras em Rúpias Indianas com VBA (Todas as Versões do Microsoft)
Para usuários de qualquer versão do Excel, o VBA (Visual Basic for Applications) oferece um método personalizável para converter valores numéricos em palavras usando o sistema de numeração indiano (por exemplo, milhares, lakhs, crores).
Passo 1: Pressione Alt + F11 para abrir o editor VBA (janela Microsoft Visual Basic for Applications).

Passo 2: Vá para Inserir > Módulo.

Passo 3: Cole o código VBA no Módulo.
Converter números em palavras em Rúpias Indianas
Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
Dim Units As String, SubUnits As String, TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
If SubUnits <> "" Then
ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
End If
ConvertToRupees = ConvertToRupees & " Only"
End Function
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
Private Function GetTens(TensText)
Dim Result As String
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
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"
End Select
Else
Select Case Val(Left(TensText, 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 "
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Private Function GetDigit(Digit)
Select Case Val(Digit)
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

Passo 4: Salve e retorne ao Excel.
Passo 5: Selecione uma célula e use a fórmula assim:
Pressione a tecla Enter

💡 Dica: Este método suporta decimais (Paise) e funciona offline.
Limitações do Uso de VBA
- Requer salvar a pasta de trabalho como um arquivo habilitado para macro (.xlsm).
- Macros podem ser bloqueadas por configurações de segurança em alguns ambientes.
Converter Números em Palavras em Outras Moedas (USD, EUR, etc.)
Para personalizar a saída para outras moedas, como "Dólares" ou "Euros", você pode ajustar os valores de string na função VBA. Abaixo está uma versão simplificada e mais flexível da função.
Modelo de Código VBA Flexível (Moeda Personalizada)
'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
Dim result As String
Dim dollars As Long
Dim cents As Long
dollars = Int(num)
cents = Round((num - dollars) * 100)
If Len(currency2) = 0 Then currency2 = "Dollars"
If Len(subCurrency) = 0 Then subCurrency = "Cents"
result = currency2 & " " & SpellNumber_English(dollars)
If cents > 0 Then
result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
End If
NumberToWordsCustom = result & " Only"
End Function
Private Function SpellNumber_English(ByVal MyNumber As Long) As String
Dim Units As Variant, Tens As Variant, Teens As Variant
Dim Place() As String
Dim TempStr As String
Dim Count As Integer
Dim t As String
Dim StrNumber As String
Dim n As Integer
Place = Split(" Thousand Million Billion", " ")
Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
StrNumber = Trim(Str(MyNumber))
Count = 0
Do While StrNumber <> ""
n = Val(Right(StrNumber, 3))
If n <> 0 Then
t = ConvertHundreds(n, Units, Tens, Teens)
If Count > 0 Then t = t & " " & Place(Count - 1)
TempStr = t & " " & TempStr
End If
If Len(StrNumber) > 3 Then
StrNumber = Left(StrNumber, Len(StrNumber) - 3)
Else
StrNumber = ""
End If
Count = Count + 1
Loop
SpellNumber_English = Trim(TempStr)
End Function
Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
Dim result As String
If n >= 100 Then
result = Units(Int(n / 100)) & " Hundred "
n = n Mod 100
End If
If n >= 20 Then
result = result & Tens(Int(n / 10)) & " "
n = n Mod 10
ElseIf n >= 10 Then
result = result & Teens(n - 10) & " "
n = 0
End If
If n > 0 Then
result = result & Units(n)
End If
ConvertHundreds = Trim(result)
End Function
Exemplo de Fórmula VBA:

Exemplo de Fórmula VBA de Outra Moeda:
=NumberToWordsCustom(A2, "Euros", "Cents")
=NumberToWordsCustom(A2, "Pounds", "Pence")
O código é flexível — basta passar a moeda desejada e a subunidade.
Salvar Sua Pasta de Trabalho como um Arquivo Habilitado para Macro
Se você estiver usando VBA, é crucial salvar sua pasta de trabalho com macros habilitadas. Caso contrário, seu código será perdido quando o arquivo for fechado.
Passo 1: Vá para Arquivo > Salvar Como

Passo 2: Selecione um local e escolha o tipo de arquivo: Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm).

Passo 3: Clique em Salvar.
✅ Suas funções personalizadas como =ConvertToRupees(A2) agora persistirão e poderão ser reutilizadas a qualquer momento.
Converter Números em Palavras em Rúpias Indianas com Função LAMBDA (Somente Microsoft 365)
Para usuários do Excel 365, você pode usar LAMBDA, um novo recurso do Excel que permite definir fórmulas personalizadas — sem necessidade de VBA.
🪄 O que é LAMBDA?
LAMBDA é um recurso no Excel que permite criar suas próprias funções personalizadas usando fórmulas — assim como funções embutidas, como SOMA ou SE, mas sem precisar de código ou macros. É ótimo para simplificar lógicas repetitivas e tornar suas planilhas mais limpas e fáceis de manter.
Passo 1: Vá para o Gerenciador de Nomes e clique em Fórmulas > Gerenciador de Nomes.

Passo 2: Crie um Novo Nome.
Clique no botão Novo.
Insira um Nome.
Exemplo: RupeeToWords
Passo 3: Cole esta fórmula LAMBDA no campo Refere-se a:
=LAMBDA(n, LET( units, {"","Um","Dois","Três","Quatro","Cinco","Seis","Sete","Oito","Nove"}, teens, {"Dez","Onze","Doze","Treze","Quatorze","Quinze","Dezesseis","Dezessete","Dezoito","Dezenove"}, tens, {"","","Vinte","Trinta","Quarenta","Cinquenta","Sessenta","Setenta","Oitenta","Noventa"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Cento" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zero", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Mil", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Cento", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Rúpias " & words & IF(paise>0, " e " & ConvertTwo(paise) & " Paise", "") & " Apenas", result ))Clique em OK para salvar o Novo Nome.

Passo 3. Feche o Gerenciador de Nomes e retorne ao Excel.
Passo 4. Use a fórmula em qualquer célula assim:
Pressione a tecla Enter.

👀 O código completo da função LAMBDA lida com Crores, Lakhs, Milhares e decimais.
Converter Números em USD, EUR e Mais de 30 Outras Moedas (Todas as Versões do Microsoft)
Para a solução mais eficiente e profissional, use o Kutools para Excel's Numbers to Words. Esta poderosa ferramenta suporta:
🌍 Mais de 30 moedas, incluindo:
- Dólares Americanos (USD)
- Euros (EUR)
- Yuan Chinês (CNY)
- Libras Esterlinas (GBP)
- etc.
Passo 1. Selecione as células que deseja converter.

Passo 2. Vá para Kutools > Texto > Converter Números em Palavras

Passo 3. Escolha sua moeda de destino e clique em OK.

Os números são convertidos para a moeda especificada.

😁 Dica: Se você quiser converter diretamente números em palavras, marque a opção Não converter para Moeda, e o resultado será mostrado assim:

Quando Usar Cada Método
Use VBA se precisar de uma solução flexível, programável e estiver familiarizado com macros.
- Use LAMBDA se estiver usando o Excel 365 e precisar apenas ocasionalmente converter valores em Rúpias Indianas. É uma solução leve e compartilhável que não requer macros ou ferramentas externas — perfeita para tarefas simples ou pessoais.
- Use Kutools para Excel se quiser a solução mais fácil, rápida e versátil — sem necessidade de codificação. Kutools é especialmente útil quando:
- Você lida com várias moedas.
- Precisa converter valores em massa ou grandes conjuntos de dados.
- Quer uma ferramenta pronta para uso profissional, sem macros, com mais de 30 opções de moedas e desempenho impulsionado por IA.
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!