Skip to main content

Convertir números en palabras en rupias indias y otras monedas en Excel (Edición 2025)

Author: Xiaoyang Last Modified: 2025-08-06

Aquí te mostramos cómo convertir números en palabras en rupias indias u otras monedas 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 escritas. Esto añade un nivel de profesionalismo y ayuda a prevenir fraudes o malentendidos.

Ejemplo

12,350.50 → Rupias Doce Mil Trescientos Cincuenta y Cincuenta Paisas Solamente

Aunque Microsoft Excel no tiene una función incorporada para convertir números en palabras, hay varias formas efectivas de lograrlo: mediante VBA, funciones LAMBDA o el complemento Kutools para Excel.

Convertir números en palabras en rupias indias con VBA (Todas las versiones de Microsoft)

Convertir números en palabras en rupias indias con la función LAMBDA (Solo Microsoft 365)

Convertir números en USD, EUR y más de 30 monedas adicionales (Todas las versiones de Microsoft)

Cuándo usar cada método


Convertir números en 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).

vba-editor

Paso 2. Ve a Insertar > Módulo.

select-module

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
paste-code

Paso 4. Guarda y regresa a Excel.

Paso 5. Selecciona una celda y usa la fórmula de esta manera:

=ConvertToRupees(A2)

Presiona la tecla Enter

use-formula

💡 Consejo: Este método soporta decimales (Paise) y funciona sin conexión.

Limitaciones del uso de VBA

  • Requiere guardar el libro como un archivo habilitado para macros (.xlsm).
  • Las macros pueden ser bloqueadas por configuraciones de seguridad en algunos entornos.

Convertir números en 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 presenta 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

Fórmula VBA de ejemplo:

=NumberToWordsCustom(A2, "Dollars", "Cents")
vba-formula-to-other-currency

Fórmulas VBA de ejemplo para otra moneda:

=NumberToWordsCustom(A2, "Euros", "Cents")

=NumberToWordsCustom(A2, "Pounds", "Pence")

El código es flexible — simplemente pasa la moneda y subunidad deseadas.


Guarda tu libro como un archivo habilitado para macros

Si estás usando VBA, es fundamental guardar tu libro con macros habilitadas. De lo contrario, tu código se perderá cuando se cierre el archivo.

Paso 1. Ve a Archivo > Guardar como

use-save-as

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

use-save-as-macro-enabled

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 en 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 permite definir fórmulas personalizadas sin necesidad de VBA.

🪄 ¿Qué es LAMBDA?

LAMBDA es una función en Excel que te permite crear tus propias funciones personalizadas usando fórmulas — al igual que las funciones integradas como SUMA o SI, pero sin necesidad de código o 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.

select-name-manager

Paso 2: Crea un nuevo Nombre.

  • Haz clic en el botón Nuevo.

    create-new-name
  • Introduce un Nombre.

    Ejemplo: RupeeToWords

    create-name
  • 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, ENTERO(n), paise, REDONDEAR((n - ENTERO(n)) * 100, 0), ConvertTwo, LAMBDA(x, SI(x<10, INDICE(unidades, x+1), SI(x<20, INDICE(teens, x-9), INDICE(tens, ENTERO(x/10)+1) & SI(RESIDUO(x,10)>0, " " & INDICE(unidades, RESIDUO(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, SI(x=0, "", SI(x<100, ConvertTwo(x), INDICE(unidades, ENTERO(x/100)+1) & " Cien" & SI(RESIDUO(x,100)>0, " " & ConvertTwo(RESIDUO(x,100)), "") ) ) ), palabras, SI(num=0, "Cero", UNIRTEXTO(" ", VERDADERO, SI(ENTERO(num/10000000)>0, ConvertTwo(ENTERO(num/10000000)) & " Crore", ""), SI(RESIDUO(ENTERO(num/100000),100)>0, ConvertTwo(ENTERO(RESIDUO(num,10000000)/100000)) & " Lakh", ""), SI(RESIDUO(ENTERO(num/1000),100)>0, ConvertTwo(ENTERO(RESIDUO(num,100000)/1000)) & " Mil", ""), SI(RESIDUO(ENTERO(num/100),10)>0, INDICE(unidades, ENTERO(RESIDUO(num,1000)/100)+1) & " Cien", ""), SI(RESIDUO(num,100)>0, ConvertTwo(RESIDUO(num,100)), "") ) ), resultado, "Rupias " & palabras & SI(paise>0, " y " & ConvertTwo(paise) & " Paise", "") & " Solamente", resultado ))
  • paste-lambda-function
  • Haz clic en OK 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:

=RupeeToWords(A2)

Presiona la tecla Enter.

use-lambda-formula

👀 El código completo de la función LAMBDA maneja Crores, Lakhs, Miles y decimales.


Convertir números en USD, EUR y más de 30 monedas adicionales (Todas las versiones de Microsoft)

Para la solución más eficiente y profesional, utiliza Kutools para Excel's Números a Palabras. Esta poderosa herramienta soporta:

🌍 Más de 30 monedas, incluyendo:

  • Dólares estadounidenses (USD)
  • Euros (EUR)
  • Yuanes chinos (CNY)
  • Libras esterlinas (GBP)
  • etc.
Descargar

Paso 1. Selecciona las celdas que deseas convertir.

select-cells

Paso 2. Ve a Kutools > Texto > Números a Palabras

select-numbers-to-words

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

select-currency-in-dialog

Los números se convierten a la moneda especificada.

kutools-convert-result

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

convert-to-words

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 usas 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 quieres 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 moneda y rendimiento potenciado por IA.

Las mejores herramientas de productividad para Office

🤖 Asistente de IA de Kutools: Revoluciona el análisis de datos basado en: Ejecución inteligente |Generar código |Crear fórmulas personalizadas |Analizar datos y generar gráficos |Invocar funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda con múltiples criterios | Búsqueda de múltiples valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente listas desplegables | Lista desplegable dependiente | Lista desplegable con selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Cambiar la visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de libros y hojas de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Encriptar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtro negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y mucho más
Utiliza Kutools en tu idioma preferido: ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...


Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo

  • 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 vez de en nuevas ventanas.
  • ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!