Convertir números a palabras en rupias indias y otras monedas en Excel (Edición 2025)
Aquí te mostramos cómo convertir números en palabras en rupias indias u otra moneda en Excel.
Al trabajar con documentos financieros como facturas, cotizaciones, formularios de impuestos, cheques o vales de pago, es común que sea necesario representar los valores monetarios tanto en formato numérico como en palabras. Esto añade un nivel de profesionalismo y ayuda a prevenir fraudes o malentendidos.
Ejemplo
Aunque Microsoft Excel no tiene una función integrada para convertir números a palabras, existen múltiples formas efectivas de lograrlo: a través de VBA, funciones LAMBDA o el complemento todo-en-uno Kutools para Excel.
Convertir números a palabras en rupias indias con VBA (todas las versiones de Microsoft)
- Convertir números a palabras en otras monedas (USD, EUR, etc.)
- Guardar tu libro de trabajo como un archivo habilitado para macros
Convertir números a palabras en rupias indias con la función LAMBDA (solo Microsoft 365)
Convertir números a USD, EUR y más de 30 monedas (todas las versiones de Microsoft)
Convertir números a palabras en rupias indias con VBA (todas las versiones de Microsoft)
Para usuarios de cualquier versión de Excel, VBA (Visual Basic para Aplicaciones) proporciona un método personalizable para convertir cantidades numéricas en palabras utilizando el sistema de numeración indio (por ejemplo, miles, lakhs, crores).
Paso 1. Presiona Alt + F11 para abrir el editor de VBA (ventana de Microsoft Visual Basic para Aplicaciones).

Paso 2. Ve a Insertar > Módulo.

Paso 3. Pega el código VBA en el Módulo.
Convertir números en palabras en rupias indias
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

Paso 4. Guarda y regresa a Excel.
Paso 5. Selecciona una celda y usa la fórmula de esta manera:
Presiona la tecla Enter

💡 Consejo: Este método soporta decimales (Paise) y funciona sin conexión.
Limitaciones de usar VBA
- Requiere guardar el libro de trabajo como un archivo habilitado para macros (.xlsm).
- Las macros pueden ser bloqueadas por configuraciones de seguridad en algunos entornos.
Convertir números a palabras en otras monedas (USD, EUR, etc.)
Para personalizar la salida para otras monedas, como "Dólares" o "Euros", puedes ajustar los valores de cadena en la función VBA. A continuación se muestra una versión simplificada y más flexible de la función.
Plantilla de Código VBA Flexible (Moneda 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
Ejemplo de Fórmula VBA:

Ejemplo de Fórmula VBA de Otra Moneda:
=NumberToWordsCustom(A2, "Euros", "Céntimos")
=NumberToWordsCustom(A2, "Libras", "Peniques")
El código es flexible — simplemente pasa la moneda deseada y la unidad menor.
Guardar tu libro de trabajo como un archivo habilitado para macros
Si estás usando VBA, es fundamental guardar tu libro de trabajo con macros habilitadas. De lo contrario, tu código se perderá cuando el archivo se cierre.
Paso 1. Ve a Archivo > Guardar Como

Paso 2. Selecciona una ubicación y elige el tipo de archivo: Libro de Trabajo Habilitado para Macros de Excel (*.xlsm).

Paso 3. Haz clic en Guardar.
✅ Tus funciones personalizadas como =ConvertToRupees(A2) ahora persistirán y podrán reutilizarse en cualquier momento.
Convertir números a palabras en rupias indias con la función LAMBDA (solo Microsoft 365)
Para usuarios de Excel 365, puedes usar LAMBDA, una nueva característica de Excel que te permite definir fórmulas personalizadas sin necesidad de VBA.
🪄 ¿Qué es LAMBDA?
LAMBDA es una característica en Excel que te permite crear tus propias funciones personalizadas utilizando fórmulas, al igual que las funciones integradas como SUMAR o SI, pero sin necesidad de código ni macros. Es ideal para simplificar lógica repetitiva y hacer que tus hojas de cálculo sean más limpias y fáciles de mantener.
Paso 1: Ve al Administrador de Nombres y haz clic en Fórmulas > Administrador de Nombres.

Paso 2: Crea un nuevo Nombre.
Haz clic en el botón Nuevo.
Ingresa un Nombre.
Ejemplo: RupeeToWords
Paso 3: Pega esta fórmula LAMBDA en el campo Se refiere a:
=LAMBDA(n, LET( unidades, {"","Uno","Dos","Tres","Cuatro","Cinco","Seis","Siete","Ocho","Nueve"}, teens, {"Diez","Once","Doce","Trece","Catorce","Quince","Dieciséis","Diecisiete","Dieciocho","Diecinueve"}, tens, {"","","Veinte","Treinta","Cuarenta","Cincuenta","Sesenta","Setenta","Ochenta","Noventa"}, num, INT(n), paise, REDONDEAR((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, SI(x<10, INDICE(unidades, x+1), SI(x<20, INDICE(teens, x-9), INDICE(tens, INT(x/10)+1) & SI(MOD(x,10)>0, " " & INDICE(unidades, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, SI(x=0, "", SI(x<100, ConvertTwo(x), INDICE(unidades, INT(x/100)+1) & " Cien" & SI(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), palabras, SI(num=0, "Cero", TEXTO.UNIR(" ", VERDADERO, SI(ENTERO(num/10000000)>0, ConvertTwo(ENTERO(num/10000000)) & " Crore", ""), SI(MOD(ENTERO(num/100000),100)>0, ConvertTwo(ENTERO(MOD(num,10000000)/100000)) & " Lakh", ""), SI(MOD(ENTERO(num/1000),100)>0, ConvertTwo(ENTERO(MOD(num,100000)/1000)) & " Mil", ""), SI(MOD(ENTERO(num/100),10)>0, INDICE(unidades, ENTERO(MOD(num,1000)/100)+1) & " Cien", ""), SI(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), resultado, "Rupias " & palabras & SI(paise>0, " y " & ConvertTwo(paise) & " Paise", "") & " Solamente", resultado ))Haz clic en Aceptar para guardar el nuevo Nombre.

Paso 3. Cierra el Administrador de Nombres y regresa a Excel.
Paso 4. Usa la fórmula en cualquier celda de esta manera:
Presiona la tecla Enter.

👀 El código completo de la función LAMBDA maneja Crores, Lakhs, Miles y decimales.
Convertir números a USD, EUR y más de 30 monedas (todas las versiones de Microsoft)
Para la solución más eficiente y profesional, utiliza Kutools para Excel's Conversión de Números a Palabras. Esta poderosa herramienta soporta:
🌍 Más de 30 monedas, incluyendo:
- Dólares Estadounidenses (USD)
- Euros (EUR)
- Yuan Chino (CNY)
- Libras Esterlinas (GBP)
- etc.
Paso 1. Selecciona las celdas que deseas convertir.

Paso 2. Ve a Kutools > Contenido > Conversión de Números a Palabras

Paso 3. Elige tu moneda objetivo y haz clic en Aceptar.

Los números se convierten a la moneda especificada.

😁 Consejo: Si quieres convertir directamente números a palabras, marca la opción No convertir a Moneda, y el resultado se mostrará así:

¿Cuándo usar cada método?
Usa VBA si necesitas una solución flexible y programable y estás familiarizado con macros.
- Usa LAMBDA si estás usando Excel 365 y solo ocasionalmente necesitas convertir valores en rupias indias. Es una solución ligera y compartible que no requiere macros ni herramientas externas, perfecta para tareas simples o personales.
- Usa Kutools para Excel si buscas la solución más fácil, rápida y versátil, sin necesidad de codificación. Kutools es especialmente útil cuando:
- Trabajas con múltiples monedas.
- Necesitas convertir valores en masa o grandes conjuntos de datos.
- Quieres una herramienta lista para uso profesional sin macros, con más de 30 opciones de monedas y rendimiento potenciado por IA.
Las mejores herramientas de productividad para Office
Mejora tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab incorpora la interfaz de pestañas en Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!
Todos los complementos de Kutools. Un solo instalador
El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.





- Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
- Mejor juntos: productividad optimizada en todas las aplicaciones de Office
- Prueba completa de30 días: sin registro ni tarjeta de crédito
- La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos