Convertir números en palabras en Excel: una guía completa
Convertir números en palabras escritas es a menudo necesario para informes financieros, documentos legales, facturas o cheques. Aunque Excel no ofrece esta funcionalidad de forma predeterminada, existen varias formas confiables de lograrlo, desde funciones integradas de Microsoft 365 hasta funciones definidas por el usuario en VBA y potentes complementos de terceros. Esta guía completa te guiará a través de cada método, destacando sus ventajas y limitaciones, y ayudándote a elegir la mejor opción para tus necesidades específicas.

- Usar nuevas funciones integradas (Solo Microsoft 365)
- Usar función definida por el usuario en VBA
- Usar Kutools para Excel con unos pocos clics
Métodos para convertir números en palabras en Excel
Esta sección introduce tres métodos efectivos para convertir números de moneda en palabras en Excel. Elige el que mejor se adapte a tu versión de Excel y caso de uso.
Método 1: Usar nuevas funciones integradas (Solo Microsoft 365)
Si estás usando Excel para Microsoft 365, puedes aprovechar la nueva función TRANSLATE para convertir fácilmente números de moneda en palabras utilizando una combinación creativa de fórmulas.
Como se muestra en la captura de pantalla a continuación, para convertir los números de moneda en el rango A2:A5 a palabras, puedes aplicar la siguiente fórmula para realizarlo.
- Selecciona una celda en blanco (por ejemplo, B2), ingresa la fórmula a continuación. =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dólares"),"satang","centavos"))
- Presiona "Enter" y arrastra el "Controlador de Relleno" hacia abajo para aplicarlo a otras filas.
Cómo funciona la fórmula:
- BAHTTEXT: Convierte el número en texto en baht tailandés (por ejemplo, “หนึ่งบาทถ้วน”).
- TRANSLATE(...,"th","en"): Traduce texto de un idioma a otro (requiere Microsoft 365). En este caso, traduce del tailandés al inglés.
- LOWER(): Convierte toda la cadena en minúsculas para mantener consistencia.
- SUBSTITUTE(): Reemplaza palabras de moneda como "baht" y "satang" con los términos deseados.
- PROPER(): Capitaliza la primera letra de cada palabra para un formato adecuado.
Adaptar para otras monedas:
La fórmula anterior produce dólares estadounidenses. Puedes personalizarla para otras monedas reemplazando las unidades principales y secundarias:
- Reemplaza "dólares" con la unidad principal de tu moneda objetivo, como "libras" para la libra esterlina británica.
- Reemplaza "centavos" con la unidad menor, como "peniques" para la libra esterlina británica.
La siguiente tabla enumera las monedas compatibles y las fórmulas correspondientes que puedes usar:
Moneda | Reemplazo de Unidad Principal | Reemplazo de Unidad Menor | Fórmula de Ejemplo (Suponiendo que el valor está en la celda A2) |
---|---|---|---|
USD | dólares | centavos | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dólares"),"satang","centavos")) |
GBP | libras | peniques | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","libras"),"satang","peniques")) |
EUR | euros | centavos | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","centavos")) |
MYR | ringgit | sen | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen")) |
Limitaciones de este método:
- Solo funciona en Excel para Microsoft 365 (debido a la función TRANSLATE()).
- La salida depende en gran medida de la precisión del formato BAHTTEXT().
- Este método es adecuado para monedas que, como el Baht tailandés, tienen tanto una unidad principal como una subunidad (por ejemplo, dólares y centavos). No se recomienda para monedas que no siguen una estructura monetaria similar.
Método 2: Usar función definida por el usuario en VBA
En esta sección, aprenderás cómo usar una función definida por el usuario basada en VBA (UDF) para convertir valores numéricos en palabras de moneda en inglés, específicamente adaptada para dólares estadounidenses (USD) por defecto.
Paso 1: Insertar código VBA
- Abre la hoja de trabajo donde deseas usar esta característica.
- Presiona "Alt" + "F11" para abrir la ventana "Microsoft Visual Basic for Applications".
- En el editor, haz clic en "Insertar" > "Módulo", y pega el siguiente 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
- Presiona "Alt" + "Q" para regresar a la hoja de trabajo.
Paso 2: Aplicar la función
- En una celda, ingresa la fórmula a continuación y presiona "Enter". =SpellNumberToEnglish(A2)
- Luego arrastra el controlador de relleno para aplicarlo a otras filas según sea necesario. Tus números ahora se mostrarán en palabras como:
Adaptar para otras monedas:
La función genera valores en “Dólar(es)” y “Centavo(s)”, que están codificados solo para USD. Si quieres convertir números en otras monedas, por ejemplo, "Libra Esterlina", necesitas cambiar manualmente las unidades mayor y menor en las siguientes líneas de código.

Guardar el libro como un archivo habilitado para macros
Por defecto, las funciones VBA no se conservarán a menos que el libro se guarde como un libro habilitado para macros:
- Presiona "Ctrl" + "S" para guardar.
- Y selecciona el botón "Regresar" en el mensaje emergente sobre macros. Nota: Si el mensaje emergente solo muestra "Sí", "No" y "Ayuda", haz clic en "No".
- En la ventana "Guardar Como".
- Elige una ubicación para guardar.
- Selecciona "Libro Habilitado para Macros de Excel (*.xlsm)" en la lista desplegable "Guardar como tipo".
- Haz clic en "Guardar".
Limitaciones de la función VBA SpellNumberToEnglish
- Esta función solo genera resultados en inglés.
- No admite otros idiomas (por ejemplo, francés, alemán), ni maneja estructuras de moneda donde la unidad de moneda va antes del número (por ejemplo, “Rupias Cien” en inglés indio).
- Si no guardas el libro como un libro habilitado para macros (.xlsm), la función se perderá cuando cierres Excel.
- Si se guarda como un archivo normal .xlsx, todo el código VBA será eliminado.
- Enviar el archivo habilitado para macros a otros activará un mensaje de advertencia de seguridad: “Macros han sido deshabilitadas” cuando se abra.
- Algunos usuarios pueden dudar en habilitar macros, temiendo posibles riesgos de seguridad, y pueden optar por no usar el archivo.
- Cualquier cambio en los términos de la moneda o el formato requiere editar manualmente el código VBA.
- No es ideal para usuarios no familiarizados con macros o scripting.
Método 3: Usar Kutools para Excel (No se necesitan fórmulas ni VBA)
Si instalas "Kutools para Excel", usa su función "Números a Palabras" para convertir números en inglés (moneda u otra cosa), docenas de otros idiomas y monedas como EUR, GBP, JPY, etc.
Si buscas una solución sin código, amigable para el usuario y versátil para convertir números en palabras en Excel, Kutools para Excel ofrece una función dedicada “Números a Palabras” que soporta:
- Inglés (USD, GBP, EUR, etc.)
- Docenas de otros idiomas y monedas (por ejemplo, Yen japonés, Rupia india, Yuan chino)
- Formato de moneda u palabras simples (por ejemplo, "Ciento Veintitrés" en lugar de "Ciento Veintitrés Dólares")
Pasos para usar:
- Selecciona las celdas que contienen los números que deseas convertir.
- Selecciona "Kutools" > "Texto" > "Números a Palabras".
- En el cuadro de diálogo "Números a Palabras de Moneda", necesitas:
- Elegir el idioma y el estilo de moneda que prefieras (por ejemplo, Inglés - Estados Unidos para USD)
- Haz clic en "Aceptar".
Opcional: Marca "No convertir a moneda" si deseas palabras simples en inglés (sin "dólares" o "centavos").
Tus números seleccionados ahora serán convertidos en las palabras apropiadas de moneda, dependiendo de tus configuraciones.
Kutools para Excel - Potencia Excel con más de 300 herramientas esenciales. ¡Disfruta de funciones de IA gratis permanentemente! Consíguelo ahora
Operación inversa: Convertir palabras de moneda a números
Si tienes una lista de cantidades de moneda escritas en palabras en inglés, como:
y quieres convertirlas a números reales en Excel (por ejemplo, 123.45), puedes usar una función personalizada VBA User Defined Function (UDF) como sigue.

Paso 1: Abre el Editor de VBA e inserta código VBA
- Abre tu libro de Excel.
- Presiona "Alt" + "F11" para abrir el editor "Microsoft Visual Basic for Applications (VBA)".
- En el editor VBA, haz clic en "Insertar" > "Módulo".
- Copia y pega el siguiente código VBA en la ventana del módulo en blanco:
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
Paso 2: Aplica la función en tu hoja
- Presiona "Alt" + "Q" para regresar a Excel.
- En cualquier celda vacía, ingresa esta fórmula y presiona "Enter". Arrastra el "Controlador de Relleno" hacia abajo para obtener el resto de los resultados. =WordsToNumber(A2)
Conclusión
Convertir números en palabras — o palabras de vuelta a números — no es algo que Excel ofrezca de forma nativa, pero esta guía ha mostrado que hay múltiples soluciones prácticas dependiendo de tus necesidades:
- Los usuarios de Microsoft 365 pueden aprovechar funciones modernas integradas como TRANSLATE para convertir números de moneda en palabras en inglés con fórmulas, especialmente para monedas que siguen una estructura de "unidad principal + subunidad".
- Las funciones definidas por el usuario en VBA ofrecen mayor flexibilidad tanto para convertir números en palabras como para revertir palabras de moneda nuevamente a valores numéricos. Sin embargo, vienen con preocupaciones de seguridad relacionadas con macros y son más adecuadas para usuarios familiarizados con la programación.
- Kutools para Excel ofrece la opción más fácil, multilingüe y rica en funciones, sin necesidad de fórmulas o codificación, cubriendo docenas de monedas e idiomas.
- Si necesitas revertir palabras nuevamente a números, la solución VBA llena este vacío de manera efectiva, aunque puede requerir limpieza (por ejemplo, eliminar comas) para resultados precisos.
Ya sea que estés preparando documentos financieros, automatizando la impresión de cheques o simplemente mejorando la presentación de datos, elegir el método correcto te ayuda a lograr salidas profesionales y precisas.
Las mejores herramientas de productividad para Office
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!