Cómo convertir números a letras en Excel

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

Función para convertir números a letras

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:

Personalizar moneda con la función de convertir números a letras en Excel

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.

Cambiar monedas en la función de convertir números a letras

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.

Convertir números a letras con otra moneda

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