Un CSV o un TSV guarda caracteres, no tipos. Cualquier cosa que abra uno tiene que decidir qué significan esos caracteres, y las suposiciones de Excel fallan de cuatro maneras concretas.
La buena noticia es que Excel se salta la adivinanza por completo si se lo pides. La mala es que hacer doble clic en el archivo no es pedírselo.
¿Por qué el doble clic es el problema?
Abrir un archivo desde el escritorio no le da a Excel ningún diálogo ni ninguna ocasión de preguntarte nada. Aplica su detección de tipos por defecto a todas las columnas y te enseña el resultado, ya convertido. A esas alturas los identificadores son números y los códigos son fechas.
Dos consecuencias que se suelen pasar por alto:
- El destrozo está hecho antes de que veas la pantalla. No existe «deshacer la importación».
- Guardar no es lo que lo rompe. Guardar solo escribe en disco los valores ya rotos, que es cuando el archivo original deja de existir.
Todo lo que viene a continuación es una forma de poner un diálogo delante de Excel antes de que lea los datos.
La vía de importación en Windows
En Excel para Microsoft 365, 2021 o 2024:
- Datos → Obtener y transformar datos → Desde texto/CSV.
- Elige el archivo. Aparece un diálogo de vista previa con tres controles que importan: Origen del archivo, Delimitador y Detección de tipos de datos.
- Pon Detección de tipos de datos en No detectar tipos de datos.
- Cargar.
El paso 3 es toda esta guía en un solo ajuste. Le dice a Excel que trate cada columna como texto, lo que desactiva de un clic la eliminación de ceros iniciales, el recorte a 15 dígitos, la notación científica y la conversión a fechas. Casi ningún tutorial de este diálogo lo menciona; te mandan a Power Query a poner los tipos columna por columna.
Si sí quieres control por columna —la mayoría como números y tres columnas de identificador como texto— elige Transformar datos en lugar de Cargar, selecciona las columnas en el editor de Power Query y ponles el tipo Texto. Elige Reemplazar actual si te ofrece sustituir un paso de tipo anterior.
También sigue estando el asistente antiguo, que a algunos les resulta más rápido para algo puntual. Viene oculto: Archivo → Opciones → Datos → Mostrar asistentes heredados para importación de datos → Desde texto (heredado). Luego aparece en Datos → Obtener datos → Asistentes heredados. Su tercer paso te deja pulsar cada columna y marcarla como Texto.
En Mac y en versiones antiguas
Las versiones recientes de Excel para Mac tienen la misma entrada Datos → Desde texto/CSV y el mismo control de detección de tipos, así que los cuatro pasos de arriba valen igual.
Las compilaciones antiguas tienen Datos → Desde texto, que abre directamente el asistente heredado: el mismo flujo de tres pasos, con los botones de tipo de columna en el paso 3.
Si no tienes ninguna de las dos, queda un truco bruto que sigue funcionando: renombra el archivo de .csv a .txt antes de abrirlo. Excel no abre un .txt en silencio, porque no tiene una interpretación por defecto para uno, así que cae en el asistente de importación y pregunta. Devuélvele la extensión después si algo más depende de ella.
Con los .tsv en concreto, Windows a menudo no tiene ninguna asociación, así que el doble clic puede no hacer nada o abrir un editor de texto. Es una pequeña suerte: significa que la vía de importación es la única vía.
La mitad del problema que es la codificación
La conversión de tipos es solo una de las dos formas en que sale mal una importación. La otra es la codificación, y se manifiesta como é donde tocaba é.
Excel en Windows, al abrir un archivo delimitado sin que le digan otra cosa, asume la página de códigos ANSI del sistema — windows-1252 en casi toda Europa occidental. Un archivo UTF-8 leído así convierte cada carácter acentuado en dos caracteres equivocados.
Dos formas de evitarlo, por orden de fiabilidad:
- Fija el Origen del archivo explícitamente en el diálogo de importación, a
65001: Unicode (UTF-8). Es el arreglo honesto, porque no depende de que haya nada dentro del archivo. - Dale al archivo una marca de orden de bytes UTF-8. Esos tres bytes del principio son como Excel reconoce UTF-8 por su cuenta. Casi cualquier herramienta puede añadirla al exportar, y el editor de este sitio la ofrece como casilla.
La marca de orden de bytes es un intercambio, no un regalo: Excel la quiere y muchísimos otros lectores no, y te devolverán un carácter suelto al principio de tu primera cabecera. Ponla cuando el archivo va a una persona que lo abrirá en Excel; déjala fuera cuando el archivo va a un programa.
Si ya tienes el galimatías en pantalla, no lo arregles con buscar y reemplazar. Cómo arreglar un TSV roto explica por qué eso lo empeora.
Cuando solo necesitas mirar
La mayoría de las veces el motivo para abrir el archivo no es editarlo: es comprobar un valor, contar filas, confirmar que la exportación salió. Excel es una herramienta pesada y destructiva para eso, y todos los riesgos de arriba se aplican igual a un vistazo de solo lectura.
Para ese trabajo vale cualquier cosa que enseñe los caracteres como caracteres: un editor de texto, un head en la línea de comandos o una rejilla que no tenga tipos. La regla es simplemente que lo que uses no esté intentando ser listo con lo que significan tus datos.
Hacerlo aquí
El editor de este sitio lee los valores de celda como texto, sin inferir números ni fechas. La detección de separador, comillas y codificación requiere revisión: comprueba las celdas mostradas y los avisos de importación antes de exportar.
La barra de estado muestra la codificación de entrada detectada. Las descargas TSV y CSV siempre usan UTF-8; por ejemplo, café en Windows-1252 pasa a texto UTF-8 con los mismos caracteres. Un BOM detectado se conserva por defecto como BOM UTF-8; puedes añadirlo o quitarlo expresamente en el diálogo. Revisa los caracteres deducidos y los avisos de conversión antes de descargar.
Si Excel es donde el archivo tiene que acabar, convertirlo a XLSX se salta la importación entera: un libro de verdad lleva los tipos dentro, así que no queda nada que adivinar. En ningún caso se sube nada: el archivo lo lee y lo escribe tu navegador.