Por qué Excel estropea tu CSV y cómo impedirlo
Un archivo CSV es texto. Ábrelo en Excel y deja de serlo, porque mientras lee cada campo Excel decide qué debe ser ese campo y lo reescribe para que encaje. Casi siempre acierta y nadie se entera. Cuando falla, el daño es silencioso, se vuelve permanente en cuanto guardas y acaba siendo culpa de quien envió el archivo.
Los ceros iniciales caen primero
Un campo con 007 le parece a Excel el número siete con dos caracteres redundantes delante, así que en siete lo convierte. Lo mismo ocurre con códigos postales, códigos de sucursal, números de pieza y cualquier identificador cuyo ancho signifique algo.
Este es el fácil de detectar, porque la columna salta visiblemente a la derecha y los ceros ya no están. Es también el que la gente parchea a mano, reescribiendo los valores con un apóstrofo delante, lo cual aguanta justo hasta la siguiente exportación.
Excel conserva quince dígitos significativos y ni uno más
Este es el que hace daño de verdad, porque nada en él parece estar mal. Un valor guardado como número en Excel conserva quince dígitos significativos. Pega una referencia de pedido de dieciséis dígitos, un identificador de transacción largo o un número tipo tarjeta, y el último dígito se convierte en cero.
La celda sigue mostrando un número largo. No hay resaltado ni aviso. Simplemente el valor ya no es el que tenías, y toda búsqueda contra él empieza a fallar por un motivo que cuesta una tarde encontrar. Lo que pase de quince dígitos debe guardarse como texto, y ningún cambio de formato lo recupera después, porque los dígitos ya no están en lo que se escribió en disco.
Los códigos que se parecen a fechas se vuelven fechas
Escribe 3-1 y Excel te devuelve el 1 de marzo. Escribe SEPT1 y obtienes el 1 de septiembre. No es un ejemplo rebuscado: le ocurrió a la genética a gran escala, porque símbolos de genes como SEPT1, MARCH1 y DEC1 tienen exactamente la forma que busca el analizador de fechas.
El problema fue tan extendido que en 2020 el comité encargado de nombrar los genes humanos renombró los símbolos afectados en lugar de seguir perdiendo la discusión con una hoja de cálculo. Si renombrar genes era el camino más fácil, conviene asumir que tus códigos de producto no tienen nada de especial.
El problema de la codificación es aparte, y molesta igual
Un CSV guardado como UTF-8 sin marca de orden de bytes se abre en Excel bajo la codificación heredada del sistema, lo que convierte cada carácter acentuado o no latino en un galimatías. Añade la marca y el archivo idéntico abre limpio.
Por eso un compañero ve una hoja perfecta y otro ve basura a partir de la misma exportación. El archivo no cambió entre ambos; las dos máquinas simplemente adivinaron codificaciones distintas.
Ni siquiera el delimitador es fijo
Excel no siempre separa por comas. Donde el separador decimal es la coma, que cubre buena parte de Europa, Excel espera punto y coma entre campos, y un archivo separado por comas llega como una única columna alta de texto.
El archivo no está mal formado. Se lee bajo una suposición regional distinta de aquella con la que se escribió, que es el mismo tipo de problema que la codificación y produce la misma queja: en mi máquina funciona.
Lo que evita todo esto de verdad
Deja de abrir archivos CSV con doble clic. Usa la ruta de importación, en Datos, y fija a Texto cada columna frágil antes de que los datos aterricen en la hoja. Ese cuadro de importación es el único momento en que la decisión es tuya y no de Excel.
Las versiones recientes también exponen la adivinación como una opción, en Opciones y luego Datos, donde la conversión automática de fechas, números largos y ceros iniciales puede desactivarse por separado. En una máquina que maneja datos exportados a menudo, merece la pena desactivar las tres.
El arreglo duradero es dejar de enviar CSV a quien lo abrirá en Excel. En un libro .xlsx de verdad cada celda lleva consigo su propio tipo, así que una columna escrita como texto sigue siendo texto la abra quien la abra, en la máquina y con la configuración regional que sea.
Revisar un archivo que ya pasó por Excel
Una vez que un archivo se ha guardado desde Excel, el daño vive en los valores almacenados y no en lo que se muestra, así que ensanchar la columna no demuestra nada. Busca identificadores más cortos de lo que deberían, números largos que acaben en un cero sospechosamente redondo y cualquier cosa en una columna de códigos que se haya vuelto una fecha.
La comprobación más rápida es abrir el archivo original como texto plano en vez de como hoja de cálculo y comparar un puñado de valores conocidos con lo que muestra la hoja. Si no coinciden, la hoja no es una vista de tus datos: es otro conjunto de datos, y el que merece conservarse es el archivo de texto.