Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

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

Author Xiaoyang Last modified

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

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

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 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)

¿Cuándo usar cada método?


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).

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 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:

=NumberToWordsCustom(A2, "Dólares", "Centavos")
vba-formula-to-other-currency

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

use-save-as

Paso 2. Selecciona una ubicación y elige el tipo de archivo: Libro de Trabajo Habilitado para Macros de Excel (*.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 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.

select-name-manager

Paso 2: Crea un nuevo Nombre.

  • Haz clic en el botón Nuevo.

    create-new-name
  • Ingresa 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, 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 ))
  • paste-lambda-function
  • 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:

=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 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.
Descarga

Paso 1. Selecciona las celdas que deseas convertir.

select-cells

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

select-numbers-to-words

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

select-currency-in-dialog

Los números se convierten a la moneda especificada.

kutools-convert-result

😁 Consejo: Si quieres convertir directamente números a 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 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

🤖 Kutools AI Aide: 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 identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de 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 Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Los15 principales conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | 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 más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

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.

Excel Word Outlook Tabs PowerPoint
  • 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