Tipos de datos en Excel

Advertencia: Este post será un poco largo. No parece una buena idea pero sinceramente creo que todo lo que expresaré es importante.  Ojalá se tomen el tiempo de leerlo.

He enseñado Excel por años, y cada vez que he tenido que empezar con una primera clase de un curso que no fuera de nivel avanzado iniciaba con el tema de "Tipo de datos en Excel".
¿Por qué?, sin querer regreso a la pregunta de la primera entrada del blog.  ¿Por qué sería importante entender que tipo de dato se tienen en Excel?  Y mi respuesta sería porque eso son los primitives de Excel.

En los lenguajes de programación se llaman tipos primitivos o elementales a los tipos de datos que tiene el lenguaje y los cuales al ser conectados con operadores utilizando sintaxis y semántica adecuada forman expresiones válidas.  Bueno no quiero hacer esto aburrido, pero resumiendo en la mayoría de lenguajes los primitivos se refieren a: caracteres, números enteros, números decimales, cadenas de textos, booleanos, etc.  Se conecta en una expresion y se tiene un resultado:
   4+3    (dos números conectados por el operador de adición)

Un momento... uno podría preguntarme, ¿acaso Excel es un lenguaje de programación? Pues yo pienso que si.  No es un clásico del tipo imperativo como son el VBA, Python, C, Java, etc., sino se podría decir que es un lenguaje funcional.  En un lenguaje funcional se generan resultados por medio de funciones; las funciones reciben los datos y generan una respuesta.  En Excel escribimos valores en celdas, en otra tipeamos una función que recibe los datos de celdas y produce un resultado.  La hoja de cálculo es el lugar de los INPUTS (entradas) y a la vez el lugar de los OUTPUTS (salida).

Bueno, si ya te convencí de este modo de ver al Excel, ahora vayamos a los importante, en Excel ¿que tipos de datos primitivos tenemos?
Yo diría que hay 4 (no voy a considerar los elementos miembros de cubo, ni los Data Types Stock y Geography de los cuales espero ocuparme en otro momento), y es fácil reconocerlos si borramos los formatos de celda presentes:
  1. Números. Están incluidos tanto los enteros como aquellos con decimales. En algunos casos el número puede ser formateado para asemejar a una fecha (tema futuro).  Están siempre alineados a la derecha (recuerden que dije que hay que quitar primero el formato de celda, para que no exista ninguna alineación forzada).  Un número está compuesto solo de dígitos, y dependiendo el valor a veces incluye símbolo decimal (normalmente el punto) y símbolo de valor negativo (-).
  2. Textos.  Constituido por datos que contienen cualquier otro elemento diferentes a los expresados en los números, es decir letras, signos de puntuación y demás caracteres no numéricos.  Si van digitados dentro de una fórmula deben estar siempre entre comillas ("). Los textos van  alineados a la izquierda. Si se combinan caracteres numéricos y no numéricos el resultado ya es un texto.
  3. Valores lógicos.  Sólo hay dos:  VERDADERO y FALSO. Noten que los escribo en mayúsculas y sin comillas pues es así que se representan.  Si les agregan las comillas se tratan de simples textos y no funcionan igual.  Si en alguna celda uno escribe =VERDADERO, es de esperar que esa celda cambie a =TRUE en un Excel en inglés.  Si uno por el contrario, escribe ="VERDADERO", el valor permanecerá inmutable en cualquier lenguaje de Excel.  Los valores lógicos van alineados al centro, y esto podría permitir diferenciar VERDADERO de "VERDADERO".
  4. Errores.  ¿Recuerdan haber visto alguna vez un #N/A o #¡REF!?

Los primitivos son los datos que podemos escribir en las celdas, son nuestros INPUTs. Las fórmulas que escribimos constituyen lo que "programamos", y, la respuesta que figurará como resultado de nuestra fórmula en esa celda será nuestro OUTPUT.

Lo interesante es que la respuesta de una fórmula será indefectiblemente alguno de estos 4 tipos de datos primitivos.  Veamos un ejemplos de fórmulas:
  • =4 + 3
  • ="simple" & "mente"
  • = 2 + 3 = 7 - 2
  • (25 + 3 ) / 0
Los resultados de cada una de estas cuatro fórmulas serán un número, un texto, un valor lógico y un error respectivamente (7, "simplemente", VERDADERO y #¡DIV/0!).

Si ahora ya has aprendido a reconocer los tipos de datos que existen en una celda de Excel puedes sentirte contento; has encontrado el origen de un porcentaje muy grande de errores en las fórmulas de Excel.  Si no sabemos cuál tipo dato tenemos y utilizamos el tipo de dato incorrecto, es de esperar que nuestras funciones puedan generar resultados erróneos.  Pongo el último ejemplo y con eso termino este blog.

La función IZQUIERDA extrae un fragmento de un texto pero su resultado es siempre otro texto.  Los textos no son operados por funciones como SUMA, por lo tanto en la imagen muestro un caso de un error clásico.


Un usuario no experimentado podría no entender porqué el resultado es cero. La explicación es sencilla: en la celda B1 la fórmula es  =IZQUIERDA(A1, 2) que ha generado "15" y no 15 como respuesta. Es decir ha generado la palabra formada por la letra "1" y la letra "5" que no es lo mismo que el número 15 (quince).  El usuario alineó el valor hacia la derecha pensando que así se arreglaban las cosas, copió la formula a las siguientes 3 líneas y la sorpresa aparece recién al sumar los valores.

Conclusiones:
  1. Entender claramente que tipo de dato tenemos en una celda nos evitará un sinnúmero de errores.
  2. Formatear la celda "maquilla" el resultado, pero no cambia el tipo de dato.
  3. Si solo sabes escribir fórmulas en Excel puedes decir que de alguna manera has tenido experiencia básica de programación en lenguajes funcionales.

PD: Editado, para no dejar con la duda de la manera correcta de resolver el problema.  La fórmula correcta en B1 debería ser
= VALOR( IZQUIERDA( B1,2) )
La función VALOR convierte un primitivo de texto "numérico" en un primitivo numérico real.

Comentarios

Entradas más populares de este blog

CONSULTA COMBINADA con búsqueda por rangos en Power Query