Microsoft Excel es una de las herramientas más poderosas con las cuales será posible administrar y controlar grandes cantidades de datos de diversos tipos (números, fechas, texto, etc), gracias a sus cientos de funciones, formulas y herramientas integradas las cuales permiten tener el control total sobre cada dato ingresado en las hojas de cálculo activas. Una de las tareas que puede ser recurrente o útil en Excel, tanto 2016 como 2019, es la conversión de números en letras. Esto es útil especialmente si estamos en un área contable o de finanzas, ya que esto ayuda a generar valores directamente en letras, algo común cuando se manejan cheques, por ejemplo.
Aunque Microsoft Excel 2016 y la nueva edición 2019 están llenas de funciones, Excel no cuenta con una función integrada que se encargue de mostrar los números como palabras en una hoja de cálculo, lo cual puede suponer un problema o fallo para muchos usuarios. Para lograr esta conversión, debemos crear un código de la función SpellNumber en un módulo de VBA (Visual Basic para aplicaciones) el cual automatizará esta acción.
Solvetic explicará en detalle cómo realizar esto en Microsoft Excel 2019 pero el mismo proceso aplica para Excel 2016.
1. Crear la función SpellNumber para convertir números en letras Excel 2019, 2016
Para llevar a cabo este proceso debemos acceder a la ventana del Editor de Visual Basic (VBE) a la cual se accede usando las teclas siguientes.
Alt + F11
Otro método alterno, es usando el menú Programador, en caso de no contar con el (recordemos que esta deshabilitado por defecto), debemos ir al menú “Archivo / Opciones” y allí ir a la sección “Personalizar la cinta de opciones”:
Allí vamos al costado lateral derecho y activaremos la casilla “Programador” y pulsamos en Aceptar, recordemos que con este menú será posible:
- Escribir macros
- Usar comandos XML.
- Usar controles ActiveX.
- Ejecutar macros grabadas anteriormente.
- Crear aplicaciones para usar con programas de Microsoft Office.
- Usar controles de formularios en Microsoft Excel.
- Trabajar con ShapeSheet en Microsoft Visio.
- Crear nuevas formas y galerías de símbolos en Microsoft Visio.
Una vez accedamos a la ventana del Editor de Visual Basic, vamos al menú “Insertar” y allí seleccionamos la opción “Módulo”:
En la nueva ventana desplegada pegaremos el siguiente contenido:
Option Explicit 'Main Function Function SpellNumber(ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Mil " Place(3) = " Millon " Place(4) = " Billon " Place(5) = " Trillon " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No hay dolares" Case "One" Dollars = "Un Dolar" Case Else Dollars = Dollars & " Dolares" End Select Select Case Cents Case "" Cents = " Sin centavos" Case "One" Cents = " Y un centavo" Case Else Cents = " y " & Cents & " Centavos" End Select SpellNumber = Dollars & Cents End Function ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) ' Convert the hundreds place. If Mid(MyNumber, 1, 1) <> "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Mil " End If ' Convert the tens and ones place. If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function ' Converts a number from 10 to 99 into text. Function GetTens(TensText) Dim Result As String Result = "" ' Null out the temporary function value. If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19... Select Case Val(TensText) Case 10: Result = "Diez" Case 11: Result = "Once" Case 12: Result = "Doce" Case 13: Result = "Trece" Case 14: Result = "Catorce" Case 15: Result = "Quince" Case 16: Result = "Dieciseis" Case 17: Result = "Diecisiete" Case 18: Result = "Dieciocho" Case 19: Result = "Diecinueve" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "Veinte " Case 3: Result = "Treinta " Case 4: Result = "Cuarenta " Case 5: Result = "Cincuenta " Case 6: Result = "Sesenta " Case 7: Result = "Setenta " Case 8: Result = "ochenta " Case 9: Result = "Noventa " Case Else End Select Result = Result & GetDigit(Right(TensText, 1)) ' Retrieve ones place. End If GetTens = Result End Function ' Converts a number from 1 to 9 into text. Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "Uno" Case 2: GetDigit = "Dos" Case 3: GetDigit = "Tres" Case 4: GetDigit = "Cuatro" Case 5: GetDigit = "Cinco" Case 6: GetDigit = "Seis" Case 7: GetDigit = "Siete" Case 8: GetDigit = "Ocho" Case 9: GetDigit = "Nueve" Case Else: GetDigit = "" End Select End Function
Una vez tengamos insertado este script en el editor de Excel, procedemos a guardarlo para futuras tareas, para ello vamos al menú “Archivo / Guardar cómo” y en la ventana desplegada seleccionamos la opción “Libro de Excel habilitado para macros” y asignamos un nombre al mismo. Pulsamos en Guardar y estaremos listos para usar esta fórmula creada.
Una vez realizado esto, podemos usar dos métodos para convertir los números en letras en Excel 2019 o 2016, estos son:
=SpellNumber(Celda)
=SpellNumber(18.45)
El resultado será la conversión de nuestros números a letras:
2. Cómo cambiar formato número a texto Excel 2019 o Excel 2016
Es posible que además del proceso que acabamos de ver, quieras cambiar el formato de número a texto en Excel 2019 o Excel 2016. En este caso el procedimiento es diferente, por l que a continuación te mostramos todos los pasos que debes seguir para saber cómo llevar a cabo este proceso de manera detallada. Podrás ver:
- Cómo cambiar formato número a texto Excel 2019 o Excel 2016
- Cómo modificar las reglas de Excel 2019 o Excel 2016
- Cómo usar el comando texto en la columna de los datos Excel 2019 o Excel 2016
Además podrás encontrar vídeos de diferentes temáticas relacionadas con soluciones informáticas o trucos de redes sociales entre otras cosas.
Así, será posible crear este script para convertir de una forma útil los datos de número en texto en Excel 2016 o 2019.