Convertir números en palabras en Excel – Una guía completa
La conversión de números a palabras es habitual en informes financieros, documentos legales, facturas o cheques. Aunque Excel no incluye esta función de forma predeterminada, existen varias opciones fiables para conseguirla: desde funciones integradas de Microsoft 365 hasta funciones personalizadas en VBA y potentes complementos de terceros. Esta guía completa le explica cada método, destaca sus ventajas y limitaciones, y le ayuda a elegir el enfoque más adecuado para sus necesidades específicas.

- Utilice nuevas funciones integradas (solo para Microsoft 365)
- Utilice una función definida por el usuario en VBA
- Utilice Kutools para Excel con unos pocos clics
Métodos para convertir Convertir a palabras en Excel
Esta sección presenta tres métodos eficaces para convertir texto en palabras en Excel. Elija el que mejor se adapte a su versión de Excel y a sus necesidades.
Método 1: Utilice las nuevas funciones integradas (solo Microsoft 365)
Si utiliza Excel para Microsoft 365, puede aprovechar la nueva función TRANSLATE para convertir fácilmente números en palabras mediante una combinación creativa de fórmulas.
Como se muestra en la siguiente captura de pantalla, para convertir los números de moneda del rango A2:A5 a palabras, puede aplicar la siguiente fórmula.

- Seleccione una celda vacía (por ejemplo, B2) e introduzca la fórmula siguiente.=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),«th»,«en»)),«baht»,«dollars»),«satang»,«cents»))
- Pulse «Intro» y arrastre el controlador de relleno hacia abajo para aplicarlo a las demás filas.

Cómo funciona la fórmula:
- BAHTTEXT: Convierte el número en texto expresado en baht tailandés (por ejemplo, «หนึ่งบาทถ้วน»).
- TRANSLATE(...,«th»,«en»): Traduce texto de un idioma a otro (requiere Microsoft 365). En este caso, del tailandés al inglés.
- MINUSC: Convierte toda la cadena a minúsculas para garantizar coherencia.
- SUSTITUIR: Reemplaza términos monetarios como «baht» y «satang» por los que prefieras.
- NOMPROPIO: Convierte la primera letra de cada palabra en mayúscula para lograr un formato adecuado.
Adaptación para otras monedas:
La fórmula anterior genera dólares estadounidenses. Puede adaptarla a otras divisas reemplazando las unidades principal y secundaria:
- Reemplace «dólares» por la unidad principal de su moneda objetivo, como «libras» en el caso de la libra esterlina.
- Reemplace «centavos» por la subunidad correspondiente, como «peniques» en el caso de la libra esterlina.
La siguiente tabla enumera las divisas compatibles y las fórmulas correspondientes que puede utilizar:
| Moneda | Reemplazo de unidad principal | Reemplazo de subunidad | 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»,«dollars»),«satang»,«cents»)) |
| GBP | libras | peniques | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«pounds»),«satang»,«pence»)) |
| EUR | euros | centavos | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«euros»),«satang»,«cents»)) |
| MYR | ringgit | sen | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«ringgit»),«satang»,«sen»)) |
Limitaciones de este método:
- Solo es compatible con Excel para Microsoft 365 (debido a la función TRANSLATE()).
- La salida depende en gran medida de la precisión del formato de BAHTTEXT().
- Este método es ideal para monedas que, como el baht tailandés, se componen de una unidad principal y una subunidad (por ejemplo, dólares y centavos). No es recomendable para monedas que no siguen una estructura similar.
Método 2: Utilice una función definida por el usuario en VBA
En esta sección aprenderá a utilizar una función definida por el usuario (UDF) basada en VBA para convertir valores numéricos en palabras, expresadas en moneda inglesa y configurada de forma predeterminada para dólares estadounidenses (USD).
Paso 1: Inserte el código VBA
- Abra la hoja de cálculo en la que desea utilizar esta función.
- Pulse «Alt» + «F11» para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
- En el editor, haga clic en «Insertar» > «Módulo» y pegue 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
- Pulse «Alt + Q» para regresar a la hoja de cálculo.
Paso 2: Aplique la función
- En una celda, introduzca la fórmula siguiente y pulse «Intro».=SpellNumberToEnglish(A2)
- Luego, arrastre el controlador de relleno para aplicarlo a otras filas según sea necesario. Sus números aparecerán ahora escritos con palabras, como:

Adaptación para otras monedas:
La función genera valores en «Dólar(es)» y «Centavo(s)», términos codificados exclusivamente para el USD. Si desea convertir números a otras monedas, como la «Libra británica», deberá modificar manualmente las unidades principal y secundaria en las siguientes líneas de código.

Guarde el libro como un archivo habilitado para macros
De forma predeterminada, las funciones VBA no se conservarán a menos que el libro se guarde como un libro habilitado para macros:
- Pulsa «Ctrl» + «S» para guardar.
- Y seleccione el botón «Volver» en el mensaje emergente sobre macros.Nota: Si el mensaje muestra solo «Sí», «No» y «Ayuda», haga clic en «No».

- En la ventana «Guardar como».
- Elija una ubicación donde guardar.
- Seleccione «Libro de Excel habilitado para macros (*.xlsm)» en la lista desplegable «Especificar formato de guardado».
- Haga clic en «Guardar».

Limitaciones de la función VBA SpellNumberToEnglish
- Esta función solo genera resultados en inglés.
- No admite otros idiomas (como el francés o el alemán) ni gestiona estructuras monetarias en las que la unidad de moneda precede al número (por ejemplo, «Rupias Cien» en inglés indio).
- Si no guarda el libro como un libro habilitado para macros (.xlsm), perderá la función al cerrar Excel.
- Si lo guarda como un archivo .xlsx normal, todo el código VBA se eliminará.
- Al enviar el archivo habilitado para macros a otros usuarios, estos verán el aviso «Advertencia de seguridad: Las macros han sido deshabilitadas» al abrirlo.
- Algunos usuarios podrían dudar en habilitar las macros por preocupaciones de seguridad y optar por no usar el archivo.
- Cualquier modificación en los términos o el formato de la moneda exige una edición manual del código VBA.
- No es ideal para usuarios que no estén familiarizados con macros o la programación.
Método 3: Utilice Kutools para Excel (sin fórmulas ni VBA)
Si instala «Kutools para Excel», aproveche su función «Convertir a palabras» para transformar números en inglés (ya sea como moneda o en palabras simples), así como en decenas de otros idiomas y divisas, como EUR, GBP, JPY, etc.
Si busca una solución fácil de usar, sin código y versátil para convertir Convertir a palabras en Excel, Kutools para Excel ofrece una función específica denominada “Convertir a palabras” que admite:
- Inglés (USD, GBP, EUR, etc.)
- Decenas de otros idiomas y monedas (por ejemplo, Yen japonés, Rupia india, yuan chino)
- Formato de moneda o palabras simples (por ejemplo, «Ciento veintitrés» en lugar de «Ciento veintitrés dólares»)
Pasos para usarlo:
- Seleccione las celdas que contienen los números que desea convertir.
- Seleccione «Kutools» > «Contenido» > «Convertir a palabras».
- En el cuadro de diálogo «Números a palabras de moneda», debe:
- Seleccione el idioma y el formato de moneda de su preferencia (por ejemplo, inglés – Estados Unidos para USD).
- Haga clic en «Aceptar».

Opcional: active la casilla «No convertir a moneda» si prefiere palabras en inglés sencillas (sin «dólares» ni «centavos»).
Los números seleccionados se convertirán ahora en sus palabras de moneda correspondientes, según su configuración.
Kutools para Excel: potencie Excel con más de 300 herramientas esenciales, agilice y simplifique su trabajo, y aproveche las funciones de IA para un procesamiento de datos más inteligente y una mayor productividad.Consígalo ahora
Operación inversa: Convertir palabras de moneda en números
Si tiene una lista de importes en moneda escritos con palabras en inglés, como:
y desea convertirlos en números reales en Excel (por ejemplo, 123,45), puede utilizar una función personalizada definida por el usuario en VBA (UDF), como se indica a continuación.

Paso 1: Abra el editor de VBA e inserte el código VBA
- Abra su libro de Excel.
- Pulse «Alt» + «F11» para abrir el editor de Microsoft Visual Basic para Aplicaciones (VBA).
- En el editor de VBA, haga clic en «Insertar» > «Módulo».
- Copie y pegue el siguiente código VBA en la ventana en blanco del módulo:
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: Aplique la función en su hoja
- Pulse «Alt + Q» para regresar a Excel.
- En cualquier celda vacía, introduce esta fórmula y pulsa «Intro». Luego, arrastra el «controlador de relleno» hacia abajo para obtener el resto de los resultados.=WordsToNumber(A2)

Conclusión
Convertir Convertir a palabras —o palabras de nuevo a números— no es algo que Excel ofrezca de forma nativa, pero esta guía ha demostrado que existen múltiples soluciones prácticas en función de sus necesidades:
- Los usuarios de Microsoft 365 pueden aprovechar funciones integradas modernas, como TRANSLATE, para convertir números de moneda en palabras en inglés mediante fórmulas, especialmente en el caso de monedas que siguen una estructura de «unidad principal + subunidad».
- Las funciones definidas por el usuario en VBA ofrecen una mayor flexibilidad tanto para convertir cantidades en palabras como para revertir palabras de moneda a valores numéricos. Sin embargo, plantean preocupaciones de seguridad relacionadas con las macros y son más adecuadas para usuarios familiarizados con la programación.
- Kutools para Excel ofrece la opción más sencilla, completa y multilingüe, sin necesidad de fórmulas ni programación, y compatible con decenas de monedas e idiomas.
- Si necesita convertir palabras nuevamente en números, la solución en VBA cubre esta necesidad de forma eficaz, aunque puede requerir una ligera limpieza (por ejemplo, eliminar comas) para garantizar resultados precisos.
Ya sea que esté preparando documentos financieros, automatizando la impresión de cheques o simplemente mejorando la presentación de sus datos, elegir el método adecuado le garantizará resultados profesionales y precisos.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos






