Números grandes en Excel
Excel es una excelente herramienta para trabajar y realizar operaciones con números. Sin embargo, esta hoja de cálculo tiene algunas limitantes para trabajar con números muy grandes además de aplicar un formato especial a las celdas donde ingresamos este tipo de números.Cuando hablo de números grandes me refiero a números enteros que contienen 12 dígitos o más. Estos números son tratados de manera especial en Excel ya que de manera predeterminada se les aplicará un formato de notación científica que no necesariamente deseamos tener. Por otro lado, Excel tiene un límite de 15 dígitos significativos para cualquier tipo de número por lo que se dificultará trabajar con cantidades de gran tamaño.
Excel convierte números a notación científica
Siempre que ingresamos un número de 12 o más dígitos en una hoja de Excel, se le aplicará un formato de notación científica. Para comprobarlo ingresaré el número de doce dígitos “123456789123” en la celda A1 y obtendré el siguiente resultado:El valor de la celda es realmente el número ingresado y lo podemos comprobar al observar que la barra de fórmulas contiene dicho número así que esto se trata solamente de un formato de la celda. Este comportamiento se debe a que, de manera predeterminada, las celdas de una hoja tienen un formato “General” y por lo tanto Excel aplicará el formato que mejor crea conveniente para el dato recién ingresado.
Para prevenir este comportamiento te recomiendo aplicar el formato “Número” a las celdas antes de ingresar el número y con eso evitarás que Excel aplique el formato de notación científica. Por ejemplo, en la siguiente imagen puedes observar que he aplicado el formato de celda “Número” sin posiciones decimales y como resultado la celda mostrará el número de 12 dígitos tal como fue ingresado inicialmente.
Excel cambia los últimos dígitos a ceros
Cuando intentamos ingresar números muy largos en una celda, específicamente números con más de 15 dígitos, Excel reemplazará con un cero todos los dígitos a partir de la posición dieciséis. Para comprobar este comportamiento, ingresaré el número “12345123451234512345” en la celda A1 y dejaré el formato de celda “General”.El número que he ingresado es la secuencia “12345” repetida cuatro veces para un total de 20 dígitos y como era de esperarse, Excel ha aplicado el formato de notación científica tal como lo describí en la sección anterior pero ahora existe una diferencia de mayor preocupación porque el valor mostrado en la barra de fórmulas no es el mismo que el ingresado en la celda. Observa que la barra de fórmulas muestra un número donde los últimos 5 dígitos han sido cambiados por ceros. Sin importar si cambiamos el formato de la celda a “Número”, Excel seguirá mostrando los últimos dígitos como ceros.
Este comportamiento se debe a que Excel utiliza la especificación IEEE 754 que indica que solamente se almacenarán los 15 dígitos significativos de cualquier número y eso se cumple inclusive para números con decimales. Por ejemplo, en la siguiente imagen puedes observar que Excel tiene el mismo comportamiento con el número de la celda A1, que es la misma secuencia de números del ejemplo anterior pero con un punto decimal después del décimo dígito. Aunque he aplicado un formato de “Número” con 10 posiciones decimales, los últimos5 dígitos se muestran como ceros:
En este ejemplo, la parte entera tiene 10 dígitos significativos, lo cual deja espacio solamente para 5 dígitos significativos después del punto decimal. Podrás agregar tantos números adicionales como lo desees pero siempre se mostrarán como máximo los 15 dígitos significativos de cualquier número. Por ejemplo, si agrego tres números más en la parte entera (777), Excel disminuirá la cantidad de dígitos mostrados en la parte decimal para cumplir con el máximo de 15 dígitos.
¿Existe alguna manera de sobrepasar el límite de 15 dígitos significativos en Excel? La respuesta corta es NO. La respuesta larga es que podemos implementar algunas alternativas las cuales analizaremos a continuación.
Ejemplo: Número de tarjeta de crédito en Excel
Existen usuarios de Excel que intentan almacenar los números de tarjetas de crédito en una celda pero pronto descubren los problemas de los que hemos hablado anteriormente. Como sabemos, las tarjetas de crédito están identificadas por 16 dígitos por lo que exceden por un solo dígito el máximo permitido por Excel.Suponiendo que se ha colocado el formato de la celda como “Número” y que en la celda A1 se han capturado los 16 dígitos de la tarjeta de crédito identificada como 1234-5678-1234-5678, obtendremos el siguiente resultado:
Como era de esperarse, el último dígito es convertido en cero y no hay manera de recuperarlo. La alternativa que tenemos es la de cambiar el formato de la celda a “Texto” y posteriormente hacer la captura. Esto no funciona al revés, es decir, es obligatorio colocar primero el formato de la celda como “Texto” y posteriormente ingresar el número o de lo contrario se perderá información.
Después de haber ingresado el número, Excel mostrará la advertencia de que lo hemos ingresado como texto pero debemos ignorar dicho mensaje ya que, si hiciéramos la conversión a número, volveríamos a perder el último dígito. Otra manera de ingresar el número como texto es anteponer un apóstrofo (‘) al momento de ingresar el dato de la siguiente manera:
En este caso no importa si la celda tiene formato “General” ya que el apóstrofo obligará a Excel a considerar el número como texto. Observa cómo la barra de fórmulas muestra el apóstrofo al inicio del texto, pero la celda A1 no muestra dicho carácter.
Así que, una manera de introducir aquellos números que tengan más de 15 dígitos es hacerlo como cadenas de texto pero habremos perdido los beneficios de las operaciones aritméticas ya que no podrás sumarlos, restarlos, multiplicarlos ni dividirlos ya que serán simplemente cadenas de texto.
Números grandes con VBA
Al convertir los números largos en texto habremos perdido la posibilidad de hacer operaciones aritméticas con ellos. Una alternativa es crear nuestras propias funciones UDF que tomen dichas cadenas de texto, las conviertan en número, hagan las operaciones dentro de VBA y finalmente devuelvan el resultado de dicha operación como una cadena de texto para insertarlo en una celda. Esto es posible porque dicho lenguaje de programación no tiene la limitante de los 15 dígitos significativos.Esta solución implica programación en VBA, por lo que no entraremos en explicaciones y detalles en este momento sino que será necesario un artículo especial para abordar el tema de la creación de ese tipo de funciones que nos ayuden a realizar operaciones aritméticas con números ingresados como texto.
Aunque Excel es la hoja de cálculo más utilizada del mundo, sigue siendo un programa de software que tiene sus limitaciones, pero es importante que todo usuario avanzado de Excel conozca dichos inconvenientes y que sea capaz de aplicar las posibles soluciones.
No hay comentarios:
Publicar un comentario