El libro de compras exporta una remesa de pagos como remittance.csv. Alguien hizo doble clic, Excel se abrió, las veinte filas se veían exactamente como se esperaba, y el archivo se guardó como .xlsx y se subió al portal del banco. Todos los pagos salieron el día correcto, al proveedor correcto, por el importe correcto.
Once días después había seis proveedores al teléfono preguntando de qué era un pago.
| En el archivo del disco | En el libro en pantalla | |
|---|---|---|
| Líneas de pago | 20 | 20 |
| Total de la remesa | 228.122,35 | 228.122,35 |
| Celdas en blanco | 0 | 0 |
| Valores de error | 0 | 0 |
| Referencias terminadas en 0 | 2 | 20 |
| Cuentas de ocho caracteres | 20 | 15 |
| Códigos de artículo guardados como texto | 20 | 15 |
| Códigos de artículo guardados como fecha | 0 | 4 |
Nadie editó nada. La conversión ocurrió entre el doble clic y la pantalla.
Un CSV no tiene tipos de datos. Tiene comas y saltos de línea, y todo lo que hay entre ellos son caracteres. Algo tiene que decidir si 00471382 es un número, una cadena o una cuenta, y cuando abres un CSV con doble clic ese algo es el analizador de Excel, trabajando campo a campo sin esquema y sin preguntar. Es rápido, casi siempre acierta, y donde se equivoca se equivoca en silencio y para siempre — los caracteres originales no se guardan en ningún sitio. No hay deshacer, porque al libro no se le hizo nada: el libro se construyó así.
Qué cubre esto. Las reglas de análisis de abajo son las mismas en Excel 2016, 2019, 2021, Microsoft 365 y Excel para Mac; los ajustes de Conversión automática de datos de la sección 9 solo existen en Microsoft 365 y Excel 2024, que es la diferencia de versión más importante de todo el artículo.
LARGO,TEXTO,VALOR,ESPACIOS,IZQUIERDA,DERECHA,EXTRAE,CONTAR,CONTARA,CONTAR.SI,CONTAR.SI.CONJUNTO,SUMAR.SI.CONJUNTO,SUMAPRODUCTO,SI.ERROR,BUSCARX,INDICE/COINCIDIR,FECHA,AÑO,MES,DIA,UNICOSyLETfuncionan en todas las versiones salvo donde se indique;DIVIDIRTEXTO,TEXTOANTESyTEXTODESPUESson solo de 365 y 2024. Un archivo de pagos es el ejemplo porque el daño es fácil de poner en euros, pero es el mismo trabajo que una exportación de stock, una subida de nóminas, una lista de códigos de barras, un identificador de paciente, un ISIN, un IMEI o el nombre de un gen — cualquier cosa donde una cadena de dígitos o un código corto lleve significado en lugar de magnitud.
1) El Decimosexto Dígito
Excel guarda un número como un flotante de 64 bits y luego se limita aún más a propósito: quince cifras significativas, y todos los dígitos posteriores se ponen a cero. No se redondean, no se muestran así — se guardan así. El formato de remesa del banco exige una referencia de dieciséis dígitos, así que todas las referencias de este archivo son un dígito más largas de lo que Excel puede guardar.
| Línea | Referencia en el CSV | Referencia en el libro | Importe |
|---|---|---|---|
| PAY-4101 | 4029283751029384 | 4029283751029380 | 18.400,00 |
| PAY-4102 | 7714026398150273 | 7714026398150270 | 2.145,60 |
| PAY-4103 | 5583019274650118 | 5583019274650110 | 31.275,00 |
| PAY-4104 | 6620418805937140 | 6620418805937140 | 860,45 |
| PAY-4105 | 9138472065518329 | 9138472065518320 | 7.318,90 |
| … | … | … | … |
| PAY-4114 | 7714026398150290 | 7714026398150290 | 5.090,00 |
Dieciocho de las veinte cambiaron. Las dos que no — PAY-4104 y PAY-4114 — son las dos cuyo decimosexto dígito ya era un cero, así que ponerlo a cero no cambió nada. Se salvaron por casualidad, no por ser distintas.
en el libro, donde las referencias ya son números:
=SUMAPRODUCTO(--(DERECHA(TEXTO($E$2:$E$21;"0");1)="0")) → 20
contra el archivo de origen, donde siguen siendo texto:
=SUMAPRODUCTO(--(DERECHA($E$2:$E$21;1)="0")) → 2
todavía casables: PAY-4104 + PAY-4114 = 5.950,45
no casables: 228.122,35 - 5.950,45 = 222.171,90 97,39%
222.171,90 de una remesa de 228.122,35 — el 97,39% — llegaron a los proveedores citando una referencia que no aparece en el mayor de nadie. La mayor de todas es PAY-4103, con 31.275,00. El dinero llegó; el dinero siempre llega, porque lo que lo mueve son el código de banco, el número de cuenta y el importe. La referencia es lo que le dice a quien lo recibe cuál de sus facturas está pagando, y dieciocho de ellas ya no apuntan a nada.
Las dos fórmulas se diferencian por un motivo que conviene guardar. DERECHA sobre un número lee la presentación General de ese número, y la presentación General de un número de dieciséis dígitos es 4,02928E+15 — así que =DERECHA(E2;1) devuelve 5, el último carácter del exponente. TEXTO(E2;"0") es lo que saca los dígitos a donde DERECHA puede verlos.
El Archivo en el Disco: Veinte Líneas de Pago Tal Como las Escribió el Libro de Compras
Veinte pagos a seis proveedores, 228.122,35 en total, exportados del libro de compras como remittance.csv. Este es el archivo tal como está en el disco, antes de que nada lo abra: todos los campos son texto, porque un CSV no tiene tipos — tiene comas. La columna D contiene números de cuenta de ocho caracteres, cinco de ellos empezando por cero. La columna E contiene referencias de pago de dieciséis dígitos, la longitud que exige el formato de remesa del banco, y exactamente dos de ellas terminan en cero por casualidad. La columna C contiene códigos de artículo de seis fabricantes, cinco de los cuales tienen la forma que Excel reconoce como algo distinto de texto: MAR-12, SEP-4 y OCT-3 parecen días de un mes, 3/8 parece una fecha con una barra, y 2E5 parece notación científica. Todas las cifras del artículo salen de esta tabla, y todas describen lo que queda de ella una vez que Excel ha decidido qué es cada campo.
fxLas celdas con fórmulas están resaltadas en verde
Pasa el mouse sobre las celdas con fórmulas para ver la fórmula y resaltar las celdas referenciadas
🎯 Escenario: Antes de abrir cualquier archivo de identificadores, hazle una pregunta al más largo: ¿cuántos dígitos tiene? Los números de tarjeta de dieciséis dígitos, las referencias de pago de dieciséis, las claves de base de datos de dieciocho, los IBAN de veinte y los IMEI de quince están todos pasados del límite, y una columna de ellos abierta con doble clic ya está dañada. Dieciséis no es un número grande. Es uno más que quince.
2) Todas las Comprobaciones Pasaron Menos Una
La remesa se comprobó. De tres formas, y las tres pasaron.
«¿Cuadra el total con el mayor?» Al céntimo:
=SUMA($F$2:$F$21) → 228.122,35 y el cargo del banco fue 228.122,35
=CONTAR($F$2:$F$21) → 20 veinte líneas dentro, veinte fuera
=CONTAR.BLANCO($A$2:$F$21) → 0 no se perdió nada
Claro que cuadró. Excel no tocó los importes, porque 18.400,00 y 2.145,60 son lo bastante cortos para guardarse exactos y además están pensados para ser números. La conversión dañó solo los campos que nunca fueron cantidades, y ninguna comprobación aritmética puede ver daño en una columna que nadie suma.
«¿Están los veinte proveedores?» Sí — =CONTARA(UNICOS($B$2:$B$21)) devuelve 6, los seis proveedores con los que se construyó la remesa, y un SUMAR.SI.CONJUNTO por proveedor cuadra con el mayor línea a línea. La columna B es texto sin ninguna forma numérica, así que no le pasó nada.
«¿Se ve algo raro?» La columna E se muestra como 4,02928E+15, que se ve raro de la forma inofensiva — un problema de formato. Ensancha la columna y sigue diciendo 4,02928E+15; ponle formato de Número sin decimales y dice 4029283751029380, dieciséis dígitos, con la pinta exacta que debe tener una referencia. El síntoma visible se arregló en un clic, y arreglarlo escondió la única señal externa de que algo había pasado.
Esta es la comprobación que falla, y el archivo entero contiene una:
=SUMAPRODUCTO(--(DERECHA(TEXTO($E$2:$E$21;"0");1)="0")) → 20
Un dígito cae en cero una vez de cada diez. Veinte seguidos es una entre 10²⁰ — cien trillones — que no es algo que le pase a un archivo real. Cualquier columna de identificadores donde el último dígito sea siempre el mismo valor ha pasado por una conversión, y esa única fórmula es la forma más rápida de averiguarlo.
🎯 Escenario: Cuando recibas un archivo de identificadores, cuenta los últimos dígitos antes de usarlo — =SUMAPRODUCTO(--(DERECHA(TEXTO($E$2:$E$21;"0");1)="0")) frente a =CONTARA($E$2:$E$21)/10. Si la primera es mucho mayor que la segunda, el archivo ha pasado por Excel en algún momento de su vida y los dígitos ya no están. Ojo: CONTAR.SI(E2:E21;"*0") no sirve para esto — los comodines solo casan con texto, y después de la conversión esto son números.
3) La Columna de Cuentas Que Ahora Tiene Cinco Longitudes Distintas
00471382 son ocho caracteres en el CSV. Excel lo lee como el número 471.382 y lo guarda así, porque un cero a la izquierda no tiene significado aritmético — y en eso tiene razón, igual que una calculadora tiene razón al decir que 00471382 € son 471.382 €.
| Línea | Cuenta en el CSV | En el libro | Longitud |
|---|---|---|---|
| PAY-4101 | 00471382 | 471382 | 6 |
| PAY-4103 | 00284917 | 284917 | 6 |
| PAY-4105 | 01923044 | 1923044 | 7 |
| PAY-4109 | 00760155 | 760155 | 6 |
| PAY-4116 | 00038291 | 38291 | 5 |
Cinco de veinte cuentas, que mueven 61.359,30 — el 26,90% de la remesa. La columna es ahora una mezcla de números de cinco, seis, siete y ocho dígitos donde todos los valores deberían ser cadenas de ocho caracteres, y la única fórmula que lo encuentra todo es:
=SUMAPRODUCTO(--(LARGO($D$2:$D$21)<>8)) → 5
Dos cosas diferencian este daño del de la sección 1, y las dos vale la pena conocerlas.
Es recuperable, porque la regla se conoce: el campo tiene ocho caracteres, así que =TEXTO(D2;"00000000") devuelve los ceros y da 00471382 exacto. Eso funciona solo porque no se perdió nada más que ceros a la izquierda — rellena un número que perdió un dígito final y obtienes una respuesta plausible y equivocada.
Y es peor para las búsquedas que para los pagos, que es la parte que la gente entiende al revés. El campo del banco es de ancho fijo y se rellena por la izquierda, así que la mayoría de estas cuentas siguen llegando a su sitio. Lo que se rompe es todo cruce contra otro sistema: =BUSCARX(D2;Cuentas[Cuenta];Cuentas[Nombre]) compara el número 471382 con el texto «00471382» y devuelve #N/D para siempre, porque en Excel un número nunca es igual a una cadena que se le parece. La mitad de los #N/D de «Excel está roto» del mundo son esto.
🎯 Escenario: Cualquier código que pueda empezar por cero — cuentas, centros de coste, códigos postales, códigos INSEE franceses, ZIP de Estados Unidos, referencias de producto, teléfonos con prefijo — es texto, no un número, en todos los sistemas por los que pase. Si tu archivo maestro lo guarda como número, el archivo ya es lossy y todos los cruces contra él están a un TEXTO() de funcionar.
4) Los Códigos Que Se Convirtieron en Fechas
MAR-12 es un código de pieza de Marlow Fasteners. Excel lo lee como el doce de marzo del año en curso, lo convierte en el número de serie 46093 y le pone formato de fecha a la celda. SEP-4 se convierte en 46269, el cuatro de septiembre. OCT-3 se convierte en 46298.
Es el error de conversión de datos más famoso del mundo, y es la razón de que el Comité de Nomenclatura Génica HUGO renombrara el gen humano SEPT2 como SEPTIN2 en 2020: en una quinta parte de los artículos de genética publicados con archivos suplementarios de Excel, los nombres de los genes se habían convertido en fechas en silencio, y la solución acabó siendo renombrar los genes.
La fila siguiente es el detalle que importa más que la conversión:
| Código de artículo | Qué hace Excel | Por qué |
|---|---|---|
| MAR-12 | 46093 — 12 de marzo de 2026 | una abreviatura de mes y un día que existe |
| MAR-118 | se queda en MAR-118 | no existe el 118 de marzo |
| SEP-4 | 46269 — 4 de septiembre de 2026 | el día 4 existe |
| SEP-118 | se queda en SEP-118 | el día 118 no |
| OCT-3 | 46298 — 3 de octubre de 2026 | el día 3 existe |
| MAR-45 | 1 de marzo de 2045 | 45 no es un día, así que se lee como año |
Una misma columna tiene ahora texto y fechas conviviendo, del mismo fabricante, y lo único que los diferencia es lo grande que resulta ser el número de pieza. Ordénala y las cuatro fechas se van a un extremo. CONTAR.SI(C2:C21;"MAR-*") encuentra tres de los cuatro códigos de Marlow y se deja MAR-12, que ya no es texto y ya no empieza por MAR. BUSCARX contra el maestro de piezas se deja el mismo. Y el daño ni siquiera es igual en máquinas distintas, que es la segunda mitad de esta sección.
3/8 es una medida de racor — tres octavos de pulgada. En un equipo configurado en inglés (Reino Unido) se convierte en 46237, el tres de agosto. En uno configurado en inglés (Estados Unidos) se convierte en 46089, el ocho de marzo. El mismo archivo, abierto por dos personas, produce dos valores distintos, ninguno de los cuales es una medida, y solo uno de los dos le parece claramente mal a cada una de ellas.
=CONTAR($C$2:$C$21) → 5 valores numéricos en una columna de códigos de pieza
Una columna de códigos debería devolver cero. Cualquier otra respuesta significa que algunos de tus códigos han dejado de ser códigos.
🎯 Escenario: =CONTAR() sobre una columna que debería ser toda texto es una auditoría de una celda para toda esta familia, y no cuesta nada dejarla puesta para siempre en una esquina de cualquier hoja que reciba importaciones. Cinco valores numéricos en una columna de códigos de pieza no es un detalle que mirar luego; son cinco filas que no volverán a casar nunca con el archivo maestro.
5) La E Que Significa Por Diez Elevado a Algo
2E5 es un código de Bexley Fittings. Excel lo lee como notación científica — 2 × 10⁵ — y guarda el número 200.000.
La regla es estrecha y conviene conocerla exacta, porque explica por qué unos códigos sobreviven y otros no. Excel convierte un campo en número cuando encaja en su forma de notación científica: dígitos, la letra E (en cualquier caja), un signo opcional y dígitos. 2E5 encaja. 1E12, 3e4 y 5E-3 encajan. 2E5X no. E5 tampoco, porque no tiene mantisa. 2F5 tampoco, porque solo la E significa esto.
De ahí salen dos consecuencias, y la segunda es la peor:
- Cualquier identificador que por casualidad tenga una
Esuelta entre dígitos puede dejar de ser un identificador. Muerde a códigos de producto, referencias químicas, nombres de pozos en petróleo y gas y — célebremente — a las cadenas hexadecimales, donde un hash como3E9ya es solo un número. - La conversión no se revierte a ojo, porque 200000 pudo venir de
2E5, de2E05, de2.0E5o de que alguien escribiera 200000. A diferencia de un cero a la izquierda perdido, no hay ninguna regla de relleno que lo devuelva.
🎯 Escenario: Si tus códigos llevan letras, mira si alguna es una E suelta rodeada de dígitos, y míralo en el archivo de origen y no en el libro — para cuando está en el libro, la prueba es un número. Un =SUMAPRODUCTO(--ESNUMERO(codigos)) sobre la columna de códigos te dice cuántos dejaron de serlo.
6) La Notación Científica Es una Forma de Mostrar; la Pérdida No
Estas dos cosas se ven idénticas en pantalla y no son el mismo suceso:
- Presentación: un número demasiado ancho para la columna se muestra como
4,02928E+15. El valor está intacto. Ensancha la columna, o ponle formato de Número, y vuelven todos los dígitos. - Pérdida: un número con más de quince cifras significativas tiene los dígitos sobrantes puestos a cero. El valor ya no está. Ensanchar la columna te enseña dieciséis dígitos, quince de los cuales son los originales.
Lo segundo se disfraza de lo primero, y así es exactamente como este archivo pasó la revisión. Alguien vio 4,02928E+15, lo reconoció como la molestia cosmética de siempre, aplicó un formato de número, vio dieciséis dígitos y concluyó que estaba arreglado. Se lee como arreglado. =LARGO(E2) hasta devuelve 16.
La única manera de distinguirlos dentro del libro es compararlos contra algo que no sea el libro:
=SI(TEXTO($E2;"0")=$H2;"igual";"DÍGITO PERDIDO")
— con la referencia original pegada en la columna H como texto (dale formato de Texto a la columna antes, o el pegado también la convierte). Si ya no tienes el archivo de origen, la comparación no se puede hacer, y esa es la verdadera razón para tratar una importación como un suceso y no como una operación de archivos: el archivo de origen es el único testigo.
🎯 Escenario: Guarda la descarga en bruto. No el libro que hiciste con ella — el .csv original, sin abrir, en una carpeta con fecha. No cuesta nada y es lo único que podrá responder algún día a «¿qué decía esto de verdad?». Todas las comprobaciones de la sección 13 son baratas; el archivo de origen es lo que hace que sean posibles.
7) Dónde Ocurre, y los Dos Sitios Donde No
La conversión no va de CSV. Va de por qué puerta entra el texto.
| Cómo llegan los datos | ¿Convierte? |
|---|---|
Doble clic en un .csv en el Explorador o el Finder | Sí |
Archivo ▸ Abrir sobre un .csv o un .txt | Sí |
| Arrastrar un archivo de texto a la ventana de Excel | Sí |
| Pegar desde una web, un PDF o un correo | Sí |
Escribir 00471382 en una celda con formato General | Sí |
| Datos ▸ Texto en columnas terminando en General | Sí |
| Datos ▸ Desde texto/CSV con las columnas tipadas como Texto | No |
| Dar formato de Texto a la columna antes de escribir | No |
Escribir '00471382 con un apóstrofo delante | No |
| Abrir el archivo en un editor de texto | No |
Dos filas merecen una nota. Texto en columnas es la que sorprende, porque es una herramienta de reparación: pásala por una columna de códigos, pulsa Finalizar con el formato General por defecto, y vuelve a analizar todas las celdas exactamente igual que habría hecho el importador. Ese mismo cuadro tiene un botón de opción Texto en el paso 3 que lo impide todo, y saltar directo a Finalizar es la forma más habitual de que una persona cuidadosa se haga este daño a propósito.
Dar formato de Texto a la columna primero funciona solo para escribir, y solo antes. Dar formato de Texto a una columna con los valores ya dentro cambia cómo se muestran los números existentes y no restaura ni un dígito; la celda que tiene 471382 pasa a tener el texto «471382», seis caracteres igual.
🎯 Escenario: El apóstrofo delante merece enseñarse a todo el que escriba códigos: '0038 se queda en 0038, el apóstrofo no forma parte del valor, y sobrevive a las copias. Lo que no sobrevive es a un Texto en columnas pasado luego por esa misma columna, que es la trampa dentro de la trampa.
8) La Importación Que No Hace Esto
Datos ▸ Obtener datos ▸ Desde texto/CSV abre una ventana de vista previa en lugar de un libro. Por defecto adivina igual — se le ve adivinar en la vista previa — pero lo hace delante de ti y te deja corregirlo antes de que un solo valor caiga en una celda.
Tres ajustes marcan la diferencia, en el editor de Transformar datos que abre el botón de la vista previa:
- Pon todas las columnas de identificadores como Texto. Haz clic en la columna y luego Transformar ▸ Tipo de datos ▸ Texto. Hazlo con la referencia, la cuenta y el código de artículo. En la barra de fórmulas esto escribe un paso
Table.TransformColumnTypesque nombra cada columna y su tipo. - Borra el paso de tipos automático. Power Query añade al importar un paso
Tipo cambiadoque tipa las columnas muestreando las primeras doscientas filas. Bórralo, o escribe tú elTable.TransformColumnTypes, y no se infiere nada de una muestra — lo que además arregla el problema aparte, y más traicionero, de una columna tipada por las filas 1 a 200 que se encuentra algo distinto en la fila 4.000. - Desactiva la detección de tipos para siempre en Datos ▸ Obtener datos ▸ Opciones de consulta ▸ Carga de datos, para que las consultas nuevas dejen de adivinar por defecto.
La recompensa es mayor que este archivo. Una consulta es repetible: el archivo de remesa del mes que viene cae en la misma carpeta, pulsas Actualizar, y se aplican las mismas reglas de tipos sin que nadie tenga que acordarse de nada. Un doble clic es una decisión que se toma de nuevo, mal y sin verse, todos los meses.
🎯 Escenario: Si recibes el mismo archivo con la misma forma más de una vez, no lo vuelvas a abrir nunca. Construye la consulta una vez, guarda el libro y sustituye «abrir el archivo» por «pulsar Actualizar». La conversión de este artículo no le puede pasar a un archivo que no abres.
9) Las Cuatro Casillas Que Microsoft Añadió en 2023
En Microsoft 365 y Excel 2024, Archivo ▸ Opciones ▸ Datos ▸ Conversión automática de datos trae cuatro casillas, todas marcadas por defecto:
- Quitar los ceros a la izquierda y convertir en número
- Truncar los datos numéricos a 15 dígitos
- Convertir los dígitos que rodean a la letra «E» a notación científica
- Convertir las letras y dígitos continuos en un número en notación científica
Desmárcalas y las secciones 3, 1 y 5 dejan de ocurrir — en lo que escribes y pegas, de inmediato, y también en los CSV que abras si además marcas la quinta casilla que hay debajo, «Aplicar esta configuración al abrir archivos CSV», que va aparte y viene desmarcada. Con la segunda casilla desmarcada, una referencia de dieciséis dígitos escrita o pegada se queda en dieciséis dígitos, y Excel muestra un aviso pequeño la primera vez en lugar de convertirla.
Lo que estos ajustes no hacen: son por usuario y por equipo, guardados en el registro y no en el archivo, así que te protegen a ti y a nadie a quien le mandes el archivo. No afectan a las fechas en absoluto — MAR-12 sigue convirtiéndose, porque la lista de Microsoft no incluye esa conversión. Y no hacen nada de forma retroactiva.
Si tu Excel no tiene este menú, estás en 2021 o anterior y la sección 8 es toda tu defensa.
🎯 Escenario: Desmarca las cuatro y la casilla de CSV en todas las máquinas que manejen archivos de datos, igual que configurarías un atajo de teclado. Y luego sigue usando la sección 8 de todos modos, porque quien te manda el archivo del trimestre que viene no ha leído este artículo y está a un doble clic de enviarte uno ya dañado.
10) Qué Se Puede Recuperar y Qué No
La línea divisoria es si los caracteres perdidos se pueden deducir de lo que queda.
| Daño | ¿Recuperable? | Cómo |
|---|---|---|
| Ceros a la izquierda, campo de ancho fijo | Sí | =TEXTO(D2;"00000000") |
| Ceros a la izquierda, campo de ancho variable | No | nada dice cuántos había |
| Decimosexto dígito puesto a cero | No | el dígito no está guardado en ningún sitio |
| Código leído como fecha | En parte | =TEXTO(C2;"mmm-d") da mar-12, y tienes que saber que el original era MAR-12 y no 12-MAR |
2E5 leído como 200000 | No | 200000 tiene cuatro originales posibles |
| Fecha leída en la región equivocada | No | 46237 y 46089 son dos lecturas válidas de 3/8 |
Las tres filas de «no» tienen algo en común: Excel no perdió el dato, lo sustituyó por un valor indistinguible de uno legítimo. Por eso no existe ninguna fórmula de reparación y no aparece nunca un valor de error. SI.ERROR no puede atrapar un número que simplemente es el número equivocado.
Lo que deja un camino de recuperación que siempre funciona, y no es una fórmula: vuelve al origen e impórtalo bien. El libro de compras que escribió remittance.csv sigue sabiendo las veinte referencias. Los cinco minutos de la sección 8 son también los cinco minutos de la reparación.
🎯 Escenario: Cuando encuentres datos convertidos, no escribas una fórmula más lista — reimporta. El tiempo dedicado a reconstruir valores desde una copia dañada produce números que parecen recuperados y no se pueden demostrar, lo que es peor que el daño, porque ahora llevan encima la autoridad de una fórmula.
11) El Viaje de Ida y Vuelta
Guarda el libro otra vez como CSV y Excel escribe lo que ahora tiene. 00471382 se escribe como 471382. 4029283751029384 se escribe como 4029283751029380. MAR-12 se escribe como lo que muestre el formato de fecha de la celda — 12/03/2026 en una máquina y 3/12/2026 en otra.
El archivo del servidor es ahora el archivo dañado, y parece exactamente igual de fiable que el que escribió el libro de compras. Cualquiera que lo compare contra el libro encontrará una coincidencia perfecta.
Este es el mecanismo por el que un doble clic descuidado se propaga por una organización: se abre un archivo «solo para echar un vistazo», se cierra con un aviso de guardar al que todo el mundo dice que sí por reflejo, y la copia de la unidad compartida se sustituye en silencio por una convertida. Nada en el cuadro de guardar lo menciona.
🎯 Escenario: Pon los archivos de datos en solo lectura donde puedas, y responde No al aviso de guardar cuando solo has mirado. Un CSV que abriste sin intención de editar no tiene nada que guardar — y si Excel cree que sí, esa es justo la señal de alarma, porque significa que Excel cambió algo.
12) Las Otras Nueve Conversiones
El mismo analizador hace todo esto al entrar, y todas son silenciosas:
1/2se convierte en el 2 de enero (una fracción necesita0 1/2, con el cero delante y un espacio).(1.250)se convierte en −1250. Las exportaciones contables usan paréntesis para los negativos y Excel está de acuerdo, lo cual es cómodo hasta que un código entre paréntesis se vuelve negativo también.VERDADEROyFALSOse convierten en booleanos, no en texto, y dejan de casar con una tabla de búsqueda que los guarde como palabras.+44 7700 900123es un teléfono para una persona y el principio de una fórmula para Excel: un+, un-o un=delante convierten el campo en una expresión, y el=es la vía por la que un CSV se convierte en un vector de inyección de fórmulas en la hoja que lo abra.00:12se convierte en una hora — 0,008333 de un día — que es una molestia cuando era una duración en un registro y un desastre cuando era el número de una habitación.1.250,00escrito por un sistema alemán se convierte en el texto1.250,00en una máquina inglesa, o en 1,25 si se lee el punto como decimal; el separador decimal es regional y el archivo no dice cuál usó.- Los espacios finales y los espacios duros sobreviven intactos a la importación, así que
"KS-4417 "nunca casa con"KS-4417"y se ven idénticos en las dos celdas.=LARGO()yESPACIOSson todo el diagnóstico, y un espacio duro (el carácter 160) también sobrevive aESPACIOS. - Un archivo UTF-8 sin marca de orden de bytes se lee con la página de códigos local, así que los nombres de proveedor con acentos llegan como
é. Datos ▸ Desde texto/CSV te deja elegir la codificación; el doble clic no. - Un número guardado como texto — el caso inverso — no se convierte al importar cuando el campo trae un espacio o un apóstrofo suelto, así que suma cero y se alinea a la izquierda.
=VALOR(ESPACIOS(A2))es el arreglo, y=SUMAPRODUCTO(--ESTEXTO(F2:F21))cuenta cuántas filas lo necesitan.
Tres de esas nueve son recuperables, y son las tres en las que los caracteres originales siguen ahí y lo único equivocado es la interpretación.
🎯 Escenario: Cualquier campo que un humano lea como identificador — referencia, código, teléfono, habitación, código postal, pieza — es texto para un ordenador. Dilo en el momento de importar, una vez, y ninguna de las doce conversiones de este artículo le puede pasar.
13) Cuatro Comprobaciones
Una celda cada una, en cualquier hoja que reciba datos importados.
=SUMAPRODUCTO(--(LARGO($E$2:$E$21)>15))
Cuántos identificadores son más largos de lo que Excel puede guardar.
Pásala contra el archivo de origen antes de abrirlo — 20 aquí — porque
después todos miden exactamente 16 caracteres y esta comprobación
devuelve 20 tanto si los dígitos siguen bien como si no.
=SUMAPRODUCTO(--(DERECHA(TEXTO($E$2:$E$21;"0");1)="0"))
Identificadores cuyo último dígito es cero. Espera alrededor de una
décima parte de las filas. 20 de 20 es la firma de un truncamiento que
ya ha ocurrido.
=SUMAPRODUCTO(--(LARGO($D$2:$D$21)<>8))
Códigos de ancho fijo que ya no tienen el ancho fijo. 5 aquí, todos por
ceros a la izquierda quitados. Es el único daño que TEXTO puede deshacer.
=CONTAR($C$2:$C$21)
Valores numéricos en una columna que debería ser toda texto. 0 en un
archivo limpio; 5 aquí — cuatro fechas y un 200.000 que era 2E5.
Las cuatro comprueban una propiedad de la columna que debería ser invariable — todos los valores de la misma longitud, todos los valores texto, los últimos dígitos repartidos — en lugar de comparar valores contra un origen que igual no tienes. Eso es lo que las hace ejecutables sobre un archivo que simplemente te han pasado.
14) Doce Trampas
- Excel guarda quince cifras significativas y pone a cero el resto. No redondea — pone a cero. Una referencia de dieciséis dígitos está un dígito pasada del límite y pierde ese dígito al entrar.
- El daño es invisible para todo recuento, total y comprobación de longitud. La referencia corrupta sigue teniendo dieciséis caracteres, sigue siendo única y sigue siendo un número. Solo la distribución del último dígito la delata.
- Arreglar la presentación en notación científica esconde el único síntoma visible.
4,02928E+15con formato de número enseña dieciséis dígitos, quince de ellos originales. - Los ceros a la izquierda se quitan al importar y al escribir, y dar formato de Texto a la columna después no devuelve ni uno.
- Un número nunca casa con el texto que se le parece. 471382 contra «00471382» es
#N/Dpara siempre, y es la causa más habitual de una búsqueda que «debería funcionar». - Un código con forma de día se convierte en fecha, y su hermano más largo no.
MAR-12convierte,MAR-118no, y una columna acaba con dos tipos de datos de un mismo fabricante. - Los números de dos cifras por encima de 31 se leen como años.
MAR-45es el 1 de marzo de 2045, ni un código de pieza ni un día. - Los códigos con barra son regionales.
3/8es el 3 de agosto en Londres y el 8 de marzo en Chicago, así que el mismo archivo tiene valores distintos en mesas distintas. - Una E suelta entre dígitos significa notación científica.
2E5son 200.000, y 200.000 tiene cuatro originales plausibles, así que nada lo devuelve. - Texto en columnas vuelve a ejecutar toda la conversión sobre una columna que ya estaba a salvo. Es una herramienta de reparación que provoca este daño, y el botón Texto del paso 3 es lo único que se interpone.
- Guardar otra vez como CSV escribe el daño en el disco. El archivo convertido sustituye al original y lleva la misma autoridad.
- Los ajustes de Conversión automática de datos son por equipo y no cubren las fechas. Te protegen a ti, no a quien te manda el archivo, y
MAR-12se convierte con las cuatro casillas desmarcadas.
Nada de esta historia es un error de programa. Todas las conversiones que hizo Excel son la conversión que debe hacer una hoja de cálculo con un campo que tiene esa pinta, y cada una por separado es una pequeña amabilidad: nadie quiere escribir =FECHA(2026;3;12) cuando basta con 12/3, ni ver un cero a la izquierda en una cantidad.
Lo que lo vuelve caro es que un CSV llega con el significado arrancado. El libro de compras sabía que la columna E era una referencia y la D una cuenta; el archivo separado por comas que escribió solo sabe que había comas. Excel reconstruye entonces el significado mirando los caracteres, que es lo mejor que podría hacer cualquiera con lo que le dieron, y se equivoca exactamente en los campos donde los caracteres son el significado y no una forma de escribir una cantidad.
Así que el arreglo nunca es una fórmula mejor. Es decirle a algo, una vez, en el momento de importar, que esos dígitos son un nombre y no un número — y no volver a abrir el archivo de ninguna otra manera.
