En el desarrollo de aplicaciones y herramientas en Excel se hace necesario convertir en letras los valores en números que arroja Excel, lo que se puede hacer con cierta facilidad.
Convertir números a letras en Excel.
El señor Brehiner Moreno Zúñiga ha desarrollado una plantilla en Excel que convierte números enteros a letras, herramienta útil para el trabajo o como elemento de estudio de las diferentes sintaxis de Excel.
Por su parte, el señor Jairo Alfonso Mosquera Pereira nos envía una nueva plantilla en Excel que convierte números a letras.
Convertir números en letras mediante función personalizada.
Los códigos anteriores no requiere macros y funcionan en cualquier archivo de Excel, pero son soluciones complejas y personalizadas. Si requiere una solución más automatizada puede hacer uso de la siguiente función:
Function NumeroALetras(ByVal Numero As Double, Optional Moneda As String = "pesos", Optional Centimos As String = "centavos") As String
' Función para Excel que convierte números a letras
' Uso: =NumeroALetras(A1) o =NumeroALetras(B2, "dólares", "centimos")
Dim Entero As Long, Decimales As Integer
Dim ParteEntera As String, ParteDecimal As String
' Separar parte entera y decimal
Entero = Int(Abs(Numero))
Decimales = Round((Abs(Numero) - Entero) * 100, 0)
' Convertir parte entera
If Entero = 0 Then
ParteEntera = "cero " & Moneda
Else
ParteEntera = ConvertirEntero(Entero) & " " & IIf(Entero = 1, Moneda, Moneda & "s")
End If
' Manejar negativo
If Numero < 0 Then ParteEntera = "menos " & ParteEntera End If ' Convertir decimales si existen If Decimales > 0 Then
ParteDecimal = " con " & ConvertirEntero(Decimales) & " " & IIf(Decimales = 1, Centimos, Centimos & "s")
End If
NumeroALetras = UCase(Left(ParteEntera, 1)) & Mid(ParteEntera, 2) & ParteDecimal
End Function
'--- Función auxiliar corregida ---
Private Function ConvertirEntero(ByVal Num As Long) As String
Dim Unidades() As String, Decenas() As String, Centenas() As String
Dim Miles As String, Millones As String
' Inicializar arrays
Unidades = Split("|un|dos|tres|cuatro|cinco|seis|siete|ocho|nueve", "|")
Decenas = Split("|diez|once|doce|trece|catorce|quince|dieciséis|diecisiete|dieciocho|diecinueve|veinte|treinta|cuarenta|cincuenta|sesenta|setenta|ochenta|noventa", "|")
Centenas = Split("|cien|ciento|doscientos|trescientos|cuatrocientos|quinientos|seiscientos|setecientos|ochocientos|novecientos", "|")
Select Case Num
Case 0 To 9: ConvertirEntero = Unidades(Num)
Case 10 To 19: ConvertirEntero = Decenas(Num - 9)
Case 20: ConvertirEntero = "veinte"
Case 21 To 29: ConvertirEntero = "veinti" & Unidades(Num - 20)
Case 30 To 99:
If Num Mod 10 = 0 Then
ConvertirEntero = Decenas(10 + (Num \ 10) - 2)
Else
ConvertirEntero = Decenas(10 + (Num \ 10) - 2) & " y " & Unidades(Num Mod 10)
End If
Case 100: ConvertirEntero = "cien"
Case 101 To 999:
ConvertirEntero = Centenas(Num \ 100)
If Num Mod 100 > 0 Then
ConvertirEntero = ConvertirEntero & " " & ConvertirEntero(Num Mod 100)
End If
Case 1000 To 999999:
Miles = ConvertirEntero(Num \ 1000)
If Num \ 1000 = 1 Then
Miles = "mil"
Else
Miles = Miles & " mil"
End If
If Num Mod 1000 > 0 Then
ConvertirEntero = Miles & " " & ConvertirEntero(Num Mod 1000)
Else
ConvertirEntero = Miles
End If
Case 1000000 To 999999999:
Millones = ConvertirEntero(Num \ 1000000)
If Num \ 1000000 = 1 Then
Millones = "un millón"
Else
Millones = Millones & " millones"
End If
If Num Mod 1000000 > 0 Then
ConvertirEntero = Millones & " " & ConvertirEntero(Num Mod 1000000)
Else
ConvertirEntero = Millones
End If
Case Else: ConvertirEntero = "Número demasiado grande"
End Select
' Eliminar espacios dobles
ConvertirEntero = Application.WorksheetFunction.Trim(ConvertirEntero)
End Function
Para ello ir a la opción de programador, insertar módulo y pegar dicho código, luego debe guardar el archivo como Libro en Excel habilitado para macros (xlsm).
Para utilizar la función sólo ingresa la siguiente fórmula:
=NumeroALetras(A1)
Cambie A1 por la celda donde tiene el número que desea convertir en letras.

Calculadora de pensión en Colpensiones
Liquidador de intereses moratorios Dian
Calendario tributario 2025
Procedimiento correcto para despedir a un trabajador por justa causa
Indemnización por despido sin justa causa
¿Quién paga las incapacidades laborales al trabajador?
Únete a nuestro canal de WhatsApp para recibir las últimas actualizaciones
Contacto
Legal
Temario
Zona de clientes
¿Me podrían indicar la manera correcta de instalarlo y utilizar la fórmula? Porque yo lo instalo, pero al momento de buscar la fórmula no aparece y ya la busqué de todas las maneras posibles.
No se requiere instalar nada. Simplemente es un conjunto de fórmulas concatenadas que puede visualizar en la barra de fórmulas de cada celda.
Nota: Hemos agregado una función para automatizar el proceso.
Perfecto, el código es excelente y aún más, ya que no utiliza macros. ¡Gracias!
Agradezco su comentario, sin embargo, no tengo información sobre el código al que se refiere. Si tiene alguna pregunta específica relacionada con la ley colombiana o algún tema en particular, estaré encantado de ayudarle.
¿Podrías apoyarme con una fórmula en Excel o la manera de obtener el conteo de caracteres numéricos de una celda? Es decir, que si sumo 3 + 15 + 600, la fórmula me devuelva que son tres caracteres numéricos los que se sumaron. Espero contar con tu gran apoyo.
Saludos,
Enrique
Para contar los caracteres numéricos en una celda de Excel, puede utilizar la siguiente fórmula:
“`excel
=SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,”0″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”1″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”2″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”3″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”4″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”5″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”6″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”7″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”8″,””)) + LEN(A1)-LEN(SUBSTITUTE(A1,”9″,””)))
“`
En esta fórmula, se asume que los datos que desea analizar están en la celda A1. La fórmula cuenta cada uno de los dígitos del 0 al 9 y suma su cantidad para obtener el total de caracteres numéricos.
Si tiene más preguntas o necesita más ayuda, no dude en consultarme.