Artículo
Por qué Excel estropea tus archivos CSV
Un identificador de paciente que empieza con tres ceros. Un gen llamado SEPT2. Un número de cuenta de dieciséis dígitos. Abre cualquiera de estos en una hoja de cálculo como un CSV de texto plano y el importador de Excel no se limita a mostrarlos, los reescribe: los ceros desaparecen, el nombre del gen se convierte en una fecha, y el número de cuenta pierde sus últimos dígitos. Nada de esto es exactamente un fallo, es lo que ocurre cuando un adivinador de números y fechas de propósito general se encuentra con texto que solo parece un número o una fecha. Esto es lo que le ocurre realmente a un archivo CSV en el momento en que Excel lo abre, y cómo evitarlo antes de que ocurra.
Los ceros a la izquierda desaparecen
Escribe 02134 en una celda y el tipo de columna predeterminado de Excel, General, lo lee como un número y elimina el cero inicial: 2134. Esto afecta a cualquier código que se guarda como dígitos pero que en realidad no es una cantidad: códigos postales de EE. UU., códigos postales franceses, números de empleado o de factura, números de teléfono. Técnicamente no se pierde nada del CSV subyacente, el texto junto a la celda permanece intacto, hasta que guardas el libro, momento en el que Excel escribe de vuelta lo que mostraba, y los ceros desaparecen para siempre. La solución es decirle a Excel que la columna es texto antes de que tenga ocasión de adivinar: mediante Datos > Desde texto/CSV (o Obtener datos > Desde archivo) puedes fijar explícitamente el tipo de dato de cada columna, o añadir un apóstrofo antes de un valor en una sola celda para forzar el texto.

El texto se convierte en fechas sin pedir permiso
El mismo adivinador también busca texto con forma de fecha. Una celda que contiene MAR1 o SEPT2, leída como 1 de marzo o 2 de septiembre, se convierte en silencio en un valor de fecha y se reformatea, sin mostrar ningún aviso. Esto no es hipotético: en 2020 el Comité de Nomenclatura de Genes Humanos (HGNC) renombró unos 27 símbolos de genes humanos, entre ellos SEPT2 y MARCH1, específicamente porque el software de hojas de cálculo seguía convirtiéndolos en fechas cada vez que se abría un conjunto de datos, un problema lo bastante grave como para que una revisión de 2016 de artículos de genómica encontrara errores de autocorrección como este en aproximadamente una de cada cinco publicaciones que incluían archivos Excel suplementarios. La lección se generaliza más allá de los nombres de genes: cualquier código alfanumérico corto que resulte parecerse a un día y un mes está en riesgo en el momento en que alguien abre tu CSV en una hoja de cálculo, no solo el tuyo.
Los números muy largos pierden sus últimos dígitos
Excel almacena cada número como un valor de coma flotante con 15 dígitos significativos de precisión, un límite que Microsoft documenta directamente. Un número de tarjeta o de cuenta de dieciséis dígitos como 4111111111111111 se redondea para encajar, así que el último dígito o los dos últimos se convierten en silencio en cero y el valor ya no es el que escribiste. Formatear la celda después no traerá de vuelta los dígitos que faltan, porque el número almacenado internamente ya se redondeó; la única solución es importar la columna como texto, o anteponer al valor un apóstrofo, antes de que Excel lo trate como un número.

El texto acentuado se convierte en caracteres ilegibles
La codificación es un modo de fallo distinto de la autocorrección. Un archivo CSV sin marca de orden de bytes es solo bytes planos; si se guardó como UTF-8, Excel en Windows normalmente lo abrirá suponiendo en su lugar la página de códigos propia del sistema, así que las letras acentuadas, los símbolos de moneda y los emojis salen como caracteres corruptos, una cadena como café apareciendo como algo más parecido a café. El camino seguro al producir un CSV para Excel es guardarlo como CSV UTF-8 o añadir una marca de orden de bytes UTF-8; el camino seguro al consumir uno es importarlo mediante Datos > Desde texto/CSV, que te permite elegir explícitamente la codificación de origen en lugar de confiar en que un doble clic adivine bien.
Mover datos entre formatos sin abrirlos en Excel
Nada de esto es realmente un fallo de Excel, es lo que el adivinador de números y fechas de una hoja de cálculo está construido para hacer, y se aplica sin importar cómo se abra el archivo, no solo en Excel. La forma más segura de remodelar un archivo CSV o comprobar que una columna realmente se mantiene como texto antes de que llegue a cualquier hoja de cálculo es trabajarlo directamente: nuestro convertidor de datos analiza el CSV con un analizador estándar que respeta las comillas y nunca reinterpreta el tipo de un valor, así que un código postal o un nombre de gen se mantiene exactamente como el texto que le diste. Se ejecuta enteramente en tu navegador, nada de lo que pegues se sube a ningún sitio. Eso solo protege el paso de conversión, eso sí: si el resultado se va a abrir después en una hoja de cálculo, marca ahí también las columnas sensibles como texto.
Herramientas en este artículo
Preguntas frecuentes
¿Cómo evito que Excel elimine los ceros a la izquierda de un CSV?
No abras el archivo haciendo doble clic. Impórtalo en su lugar mediante Datos > Desde texto/CSV (u Obtener datos), que muestra un selector de tipo de dato columna por columna; fija la columna de código postal, identificador o número de teléfono a Texto antes de terminar la importación. Un arreglo rápido celda a celda es escribir un apóstrofo antes del valor, como '02134, que fuerza el texto sin cambiar lo que se muestra.
¿Por qué Excel convirtió mi identificador o código en una fecha?
El tipo de columna General de Excel busca activamente texto con forma de fecha, patrones como una palabra corta más un número, o dos números separados por un guion o una barra, y convierte cualquier cosa que coincida, sin pedir confirmación. Esto es exactamente lo que forzó el renombramiento de símbolos de genes como SEPT2 y MARCH1 en 2020. Importa la columna como Texto, igual que para los ceros a la izquierda, para detener la conjetura antes de que ocurra.
¿Convertir mi CSV de otra forma evita estos problemas por completo?
Los evita para ese paso de conversión, no para siempre. Un analizador que trata cada campo como texto plano, como nuestro convertidor de datos, no reescribirá un código postal ni un nombre de gen al convertir un CSV en JSON. Pero si el resultado termina abriéndose después en una hoja de cálculo, por ti o por quien lo reciba, el importador propio de ese programa tiene otra oportunidad de reinterpretar los valores, así que las columnas sensibles también hay que marcarlas ahí como texto.