mygems

Cómo evitar que Excel cambie los datos de tu CSV

Excel quita ceros iniciales, convierte IDs en 1,23E+15 y códigos en fechas al abrir un CSV. Así lo importas para que no cambie nada.

Por mygems ·

Haces doble clic en un CSV y Excel "ayuda". El código postal 01234 se convierte en 1234. El número de pedido 4012888888881881 pasa a ser 4,01289E+15, y el último dígito se reemplaza por un cero. El código de producto 3-5 se convierte en el 3 de mayo. Nada de esto está en el archivo. Excel lo hizo al abrirlo, y si guardas, queda permanente.

La solución no es abrir el archivo de otra manera cada vez y esperar lo mejor. Es dejar de dejar que Excel adivine, y eso lleva alrededor de un minuto.

La respuesta rápida

  • No hagas doble clic en el CSV. Usa Datos → Desde texto o CSV y pon las columnas frágiles como Texto antes de cargar.
  • En Microsoft 365, desactiva las conversiones que no quieras en Archivo → Opciones → Datos → Conversión automática de datos.
  • Nunca guardes encima del original después de abrirlo con doble clic. El daño se escribe en el archivo en ese momento.
  • Google Sheets: Archivo → Importar, y desmarca Convertir texto en números, fechas y fórmulas.

Qué cambia Excel y por qué

Un CSV no tiene tipos: todos los valores son texto. Excel quiere números y fechas, así que adivina, columna por columna y celda por celda. Las suposiciones que hacen daño:

TeníasExcel muestraQué pasó
012341234Se quitó el cero inicial de un "número"
40128888888818814,01289E+15Notación científica; los dígitos después del 15.º pasan a ser 0
3-5, 1/25-mar, 2-eneLeído como fecha
MARCH1, SEPT21-Mar, 2-SepLeído como fecha (un problema famoso con los nombres de genes)
1E5100000Leído como notación científica
=1+12Leído como fórmula
TRUETRUE (como booleano)Normalmente inofensivo, hasta que es un nombre

Dos de estos casos son destructivos y no solo cosméticos. La notación científica en un número de 16 dígitos descarta el último dígito, porque Excel guarda los números con 15 cifras significativas. Y un valor leído como fecha se guarda como un número de serie de fecha. Si vuelves a cambiar el formato a texto, ves un número de serie como 46086, no 3-5.

El momento que importa es Guardar. Abrir un CSV cambia lo que ves. Guardarlo como CSV escribe de vuelta en el archivo lo que ves, y los valores originales se pierden.

Solución 1: importar en lugar de abrir

Esto funciona en todas las versiones de escritorio de Excel desde 2016.

  1. Abre un libro en blanco.
  2. Datos → Desde texto o CSV y elige el archivo.
  3. En la vista previa, haz clic en Transformar datos (no en Cargar).
  4. En Power Query, selecciona cada columna frágil: identificadores, códigos postales, números de teléfono, códigos de producto, números de cuenta. Luego Transformar → Tipo de datos → Texto. Si te lo pregunta, elige Reemplazar actual.
  5. Cerrar y cargar.

Los valores llegan exactamente como están escritos. Todavía puedes hacer cálculos con las columnas realmente numéricas, porque solo apagaste las suposiciones donde hacían daño.

Si prefieres el asistente antiguo: Archivo → Opciones → Datos → Mostrar asistentes de importación de datos heredados → Desde texto (heredado). Aparecerá entonces en Datos → Obtener datos → Asistentes heredados, y el paso 3 del asistente te permite marcar columnas como Texto.

Solución 2: desactivar la conversión automática

Las versiones recientes de Excel para Microsoft 365 tienen opciones justo para esto, en Archivo → Opciones → Datos → Conversión automática de datos:

  • Quitar los ceros iniciales y convertir en un número
  • Mantener los primeros 15 dígitos de los números largos y mostrarlos en notación científica
  • Convertir en número con notación científica los dígitos que rodean la letra "E"
  • Convertir en fecha las letras y números continuos

Desmarca las que te afectan. También hay una opción para que te avise cuando Excel convierte algo al abrir un CSV; conviene dejarla activada, porque convierte un cambio silencioso en uno visible.

Estas opciones se aplican también al abrir con doble clic, lo que las hace la solución más cómoda. También son las menos portables: la persona a la que le envías el archivo tiene su propia configuración.

Solución 3: Google Sheets y Numbers

Google Sheets también convierte por defecto. Usa Archivo → Importar → Subir y, en el cuadro de importación, desmarca Convertir texto en números, fechas y fórmulas. Todo llega como texto, tal como está escrito.

Numbers en Mac y iPhone también quita los ceros iniciales y lee como fechas los valores que lo parecen. Selecciona la columna y ponle formato Texto para evitarlo en las entradas nuevas, pero la conversión al abrir ya ocurrió. Si los datos importan, compara algunos valores conocidos con el archivo original.

Soluciones que parecen ingeniosas y no lo son

  • Escribir los valores como ="01234" en el CSV. Excel muestra 01234. Cualquier otra herramienta que lea el archivo ve una fórmula, y también el siguiente sistema al que vaya tu exportación.
  • Añadir un apóstrofo, '01234. El mismo problema: el apóstrofo pasa a formar parte de tus datos en todas partes menos en Excel.
  • Dar formato de Texto a la columna después de abrir. Demasiado tarde. El cero ya se perdió; el formato no puede traerlo de vuelta.

En el teléfono

Los teléfonos tienen el mismo problema con menos opciones. Numbers en iPhone y las apps de Sheets y Excel convierten al abrir, y un CSV guardado de nuevo desde ellas arrastra los cambios.

Una app de CSV que trata cada celda como texto no tiene este problema, porque nunca convierte. En Smart CSV Viewer puedes indicar que una columna contiene números, moneda o fechas para que se ordene y filtre bien, pero el tipo solo cambia cómo se muestra la columna. El texto del archivo sigue igual.

La hoja Tipo de columna para una columna Presupuesto con formato de número mostrado como moneda, con la nota de que el archivo conserva su texto tal cual
Un tipo de visualización, no una conversión
CSV File Viewer - Smart CSViPhone y iPad · Android

Muestra una columna como número, moneda o fecha sin reescribirla, así que los ceros iniciales, los identificadores largos y los códigos quedan exactamente como están en el archivo.

Qué hace

Un hábito que vale la pena

Antes de fiarte de un CSV que pasó por una hoja de cálculo, revisa tres valores fáciles de romper: un identificador con cero inicial, el número más largo del archivo y un código que parezca una fecha. Si esos tres sobrevivieron, casi seguro que el resto también. La guía de CSV vs XLSX explica por qué pasa esto con cualquier hoja de cálculo, no solo con Excel.

Preguntas

¿Cómo evito que Excel quite los ceros iniciales de un CSV?
No abras el CSV con doble clic. Usa Datos → Desde texto o CSV, elige Transformar datos, pon las columnas afectadas como Texto y luego carga. En Microsoft 365 también puedes desmarcar «Quitar los ceros iniciales y convertir en un número» en Archivo → Opciones → Datos → Conversión automática de datos.
¿Por qué Excel cambia los números largos a 1,23E+15?
Excel guarda los números con 15 cifras significativas y muestra los largos en notación científica. Los dígitos después del 15.º se reemplazan por ceros, así que un identificador de 16 dígitos cambia de forma permanente si guardas. Importa la columna como Texto para conservar todos los dígitos.
¿Cómo evito que Excel convierta números en fechas en un CSV?
Importa el archivo con Datos → Desde texto o CSV y pon la columna como Texto o, en Microsoft 365, desmarca «Convertir en fecha las letras y números continuos» en las opciones de conversión automática de datos. Cambiar el formato después no sirve, porque el valor ya se guardó como fecha.
¿Puedo recuperar mis ceros iniciales después de guardar el CSV?
No desde el archivo guardado: los ceros ya no están. Si los valores tenían una longitud fija, puedes rellenarlos con una fórmula como TEXTO(A2; "00000"), pero la solución fiable es volver a exportar desde el sistema de origen e importarlo bien.
¿Google Sheets también cambia los datos del CSV?
Sí, por defecto. Usa Archivo → Importar y desmarca «Convertir texto en números, fechas y fórmulas» para conservar cada valor como texto.

mygems — Desarrolla CSV Editor y Smart CSV Viewer, dos apps que existen porque las hojas de cálculo se rinden con los archivos grandes.