Cómo convertir números a letras en Excel
Convertir números a letras es una labor que muchas personas buscan realizar en la hoja de cálculo de Excel. Sin embargo, Excel aún no cuenta con una función que nos ayude a realizar esta tarea de forma simple y rápida. Por lo cual, se hace necesario crear una función que nos permita hacer la conversión de números a letras.
En este artículo vamos a mostrarte cómo convertir números a letras de forma sencilla, de hecho, podrás utilizar la función o descargar el archivo y personalizarlo sin tener que escribir o modificar una línea de código.
Convertir números a letras de forma simple
Una de las formas simples en que podrás convertir números a letras en Excel, es mediante el complemento que vamos a compartirte y el cual, podrás usar sin ningún tipo de restricción en tu trabajo o archivos.
Primero te compartiremos el complemento, te enseñaremos cómo instalarlo, cómo usarlo y que podrías hacer en él.
Función para convertir números a letras en Excel
La función que hemos creado para convertir números a letras en Excel se llama CONVERTIRNUMEROLETRA y puedes usarla completamente gratis. Esta función se ha creado para compartir contigo una idea de lo que puedes lograr cuando tienes un conocimiento de Excel avanzado.
Como instalar el complemento o función
Para instalar la función CONVERTIRNUMEROLETRA en tu Excel y convertir números a letras, insertaremos un módulo de Visual Basic.
Por favor, ve al Excel y sigue las instrucciones que se detallan a continuación:
- Haz clic en el menú de programador. Si aún no tienes habilitada esta opción puedes ir a Archivo – Opciones – Personalizar cinta de opciones y habilitar Desarrollador o Programador
- Selecciona la opción de Visual Basic
- Hacer clic en el menú Insertar y luego en Módulo
- Y utilizar el siguiente código de Visual Basic:
Función CONVERTIRNUMEROLETRA (Copia y pega en el Módulo)
Function CONVERTIRNUMEROLETRA(tyCantidad As Currency) As String
‘A través de esta función de vba vamos a convertir números en texto’Dclaramos variables a utilizar en el código VBA
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant ‘Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad – lyCantidad) * 100
laUnidades = Array(“UN”, “DOS”, “TRES”, “CUATRO”, “CINCO”, “SEIS”, “SIETE”, “OCHO”, “NUEVE”, “DIEZ”, “ONCE”, “DOCE”, “TRECE”, “CATORCE”, “QUINCE”, “DIECISEIS”, “DIECISIETE”, “DIECIOCHO”, “DIECINUEVE”, “VEINTE”, “VEINTIUN”, “VEINTIDOS”, “VEINTITRES”, “VEINTICUATRO”, “VEINTICINCO”, “VEINTISEIS”, “VEINTISIETE”, “VEINTIOCHO”, “VEINTINUEVE”)
laDecenas = Array(“DIEZ”, “VEINTE”, “TREINTA”, “CUARENTA”, “CINCUENTA”, “SESENTA”, “SETENTA”, “OCHENTA”, “NOVENTA”)
laCentenas = Array(“CIENTO”, “DOSCIENTOS”, “TRESCIENTOS”, “CUATROCIENTOS”, “QUINIENTOS”, “SEISCIENTOS”, “SETECIENTOS”, “OCHOCIENTOS”, “NOVECIENTOS”)
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = “”
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = ” ” & laUnidades(lnDigito – 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = ” ” & laUnidades((lnDigito * 10) + lnPrimerDigito – 1)
Else
lcBloque = ” ” & laDecenas(lnDigito – 1) & IIf(lnPrimerDigito <> 0, ” Y”, Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = ” ” & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, “CIEN”, laCentenas(lnDigito – 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next I
Select Case lnNumeroBloques
Case 1
CONVERTIRNUMEROLETRA = lcBloque
Case 2
CONVERTIRNUMEROLETRA = lcBloque & IIf(lnBloqueCero = 3, Null, ” MIL”) & CONVERTIRNUMEROLETRA
Case 3
CONVERTIRNUMEROLETRA = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, ” MILLON”, ” MILLONES”) & CONVERTIRNUMEROLETRA
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
‘Este es el resultado final en pantalla del texto convertido a número
CONVERTIRNUMEROLETRA = “SON: (” & CONVERTIRNUMEROLETRA & IIf(tyCantidad > 1, ” PESOS “, ” PESO “) & Format(Str(lyCentavos), “00”) & “/100 M.N.)”
End Function
- Una vez que hemos pegado el código anterior (Visual Basic) guardamos el documento con la extensión .xlsm que habilita las macros en Excel.
- Ahora podremos emplear la función que hemos creado para convertir números a letras en Excel, solo debemos llamar la función CONVERTIRNUMEROLETRA y aplicarla sobre el valor que deseamos convertir a texto
Ejemplos para convertir números a letras
Ahora veamos algunos ejemplos de cómo usar la función CONVERTIRNUMEROLETRA para convertir números a letras en Excel.
Pero antes, si quieres ver un ejemplo de cómo usar esta función, puedes descargar la siguiente plantilla de Excel: Plantilla modelo de factura en Excel
La forma más fácil de convertir números a letras es utilizando la función CONVERTIRNUMEROLETRA de la siguiente manera:
Iniciamos nuestra fórmula con el signo igual (=), luego escribimos la función CONVERTIRNUMEROLETRA y seleccionamos la celda en la que se encuentra el valor que deseamos convertir a texto
=CONVERTIRNUMEROLETRA(C5)
Recordemos que para que esta función se muestre en nuestras opciones de funciones o fórmulas, debemos antes haber instalado el complemento o la función como se las hemos suministrado.
Personalizar la moneda para otros países
Como podemos ver en el ejemplo, cuando realizamos la acción de convertir un número a texto nos muestra de manera predeterminada la moneda “Pesos”. Pero ¿qué sucede si queremos usar la moneda de otro país?
A continuación, te mostraremos cómo hacer este cambio para que puedas personalizar o utilizar la moneda del país que quieras.
Para realizar el cambio, debemos ir a la ficha de Programador o Desarrollador y hacer clic en Visual Basic para abrir el editor de Visual Basic y luego de ello, hacemos clic sobre el Módulo. Esto nos mostrará el código de la función que hemos pegado anteriormente.
Vamos a buscar dentro de este código las siguientes líneas:
En esta sección vamos a reemplazar la moneda “Pesos”. Solo debemos cambiar Pesos y peso por la moneda que queramos. Por ejemplo, voy a utilizar la moneda Euros y al modificar nuestro código nos quedaría de la siguiente manera.
Recuerda que debes guardar los cambios y cerrar el editor de Visual Basic.
Ahora, lo que debes hacer nuevamente es realizar la conversión de números a letras y visualizar el cambio de la moneda. De esta misma manera, podemos ir personalizando la forma en cómo se mostrará nuestro texto una vez lo hayamos convertido a letras.
Observaciones adicionales
La función que te acabamos de compartir puede convertir números a letras en Excel desde cero (0) hasta el número 1,999,999,999. Cualquier número fuera de este rango Excel nos devolverá un mensaje de “ERROR: el número excede los límites”.
Puedes usar esta función en todos los libros de Excel como quieras, solo debes copiar el código a tu Excel.
Esperamos que este artículo haya sido de gran utilidad para ti. Si tienes alguna duda, comentario o sugerencia déjanoslo saber al final de este post o si deseas aprender mucho más sobre Excel, puedes explorar nuestro curso de Excel disponible en esta plataforma.
Haz clic aquí para ver el curso de Excel