En resumen — Las dos funciones borran caracteres que no puedes ver, pero cazan presas distintas.
TRIM(texto)quita los espacios iniciales, finales y de más (colapsa varios seguidos en uno), pero solo el espacio normal, ASCII 32.CLEAN(texto)quita los caracteres de control no imprimibles, códigos 0–31 (saltos de línea, tabulaciones de una exportación mala). La trampa que atrapa a todo el mundo: el texto pegado desde una página web o un PDF suele arrastrar un espacio de no separación,CHAR(160)— y ninguna de las dos lo toca. El arreglo que lo caza todo es una sola fórmula.
Nota: en la interfaz de Excel en español estas funciones se llaman ESPACIOS (TRIM), LIMPIAR (CLEAN), SUSTITUIR (SUBSTITUTE) y CODIGO (CODE). Usa
CHAR(o CARACTER en la versión española). En las fórmulas de este artículo se mantienen los nombres en inglés; si tu Excel está en español, escribe el equivalente entre paréntesis. Los códigos de error también se traducen:#N/A→#N/D y#VALUE!→#¡VALOR!.
=TRIM(" Apple Inc. ") ' -> "Apple Inc." (bordes + espacios internos)
=CLEAN("Line1"&CHAR(10)&"Line2") ' -> "Line1Line2" (quita el salto de línea)
=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))) ' el limpiador que lo caza todo
Los espacios finales y los caracteres de control sueltos son los errores más
difíciles de una hoja de cálculo precisamente porque no puedes verlos. Una
búsqueda falla, un SUM se queda corto, "Apple" y "Apple " caen en dos filas
distintas de una tabla dinámica — y las celdas se ven idénticas. ESPACIOS
(TRIM) y LIMPIAR (CLEAN) son la forma de hacer que lo que hay coincida con
lo que ves.
Lo que aprenderás
- El reparto:
TRIMva a por los espacios,CLEANva a por los caracteres de control - Por qué
TRIMconserva los espacios interiores individuales (colapsa, no arrasa) - El espacio de no separación
CHAR(160)que se les escapa a ambas — y el arreglo de una línea - Por qué el espacio en blanco invisible rompe en silencio
=,VLOOKUPy la deduplicación - El criterio: limpia una vez en la frontera de importación, no en cada fórmula
El modelo mental: dos limpiadores con oficios distintos
Piensa en TRIM y CLEAN como dos empleados de la limpieza con descripciones
de puesto muy estrechas.
TRIM es el encargado de los espacios en blanco. Recorre la cadena y elimina
todos los espacios del principio y del final, y colapsa cualquier tanda interna
de espacios hasta dejar uno solo. Ese comportamiento de "colapsar las tandas
internas" es la parte que la gente olvida: TRIM no es "quitar todos los
espacios", es "normalizar el espaciado a uno entre palabras".
CLEAN es el encargado de los caracteres de control. Elimina los caracteres
bajos y no imprimibles — códigos 0 a 31 — que se cuelan al copiar y pegar desde
un correo, una exportación de base de datos o un archivo de texto con los saltos
de línea equivocados. El clásico es CHAR(10), un salto de línea metido dentro
de una celda que hace que tus datos parezcan de una línea pero se comporten como
si fueran dos.
No se solapan ni compiten. Si tu basura es espaciado, eso es TRIM. Si tu
basura es un glifo invisible raro o un salto de línea, eso es CLEAN. La mayoría
de los datos importados reales tienen las dos cosas, y por eso los verás tan a
menudo anidados: =TRIM(CLEAN(A2)).
La regla que lo desbloquea todo: el espacio que no ves suele ser CHAR(160)
Esta es la pregunta de soporte más común sobre TRIM, y su respuesta es la razón
entera para leer este artículo: "Ejecuté TRIM y el espacio sigue ahí."
El noventa por ciento de las veces, ese "espacio" no es ASCII 32. Es un espacio
de no separación, CHAR(160) (el de HTML), y aparece cada vez que
pegas desde una página web, un PDF o un informe renderizado. TRIM solo conoce
el ASCII 32, así que pasa de largo junto al 160. Y CLEAN solo elimina del 0 al
31, así que el 160 también se le escapa a ese. El carácter es invisible, los
dos empleados lo ignoran, y te quedas mirando una celda que se niega a coincidir.
' Demuéstralo — esto devuelve 160, no 32:
=CODE(RIGHT(A2, 1)) ' -> 160 ("ajá, espacio de no separación")
' Convierte primero los 160 en espacios normales, y LUEGO recorta:
=TRIM(SUBSTITUTE(A2, CHAR(160), " "))
' El limpiador a prueba de bombas para importaciones realmente sucias:
=TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), " ")))
El SUBSTITUTE(A2, CHAR(160), " ") cambia cada espacio de no separación por uno
de verdad, y entonces TRIM puede hacer su trabajo. Grábate ese patrón en la
memoria — convierte "TRIM está roto" en un problema resuelto para el resto de tu
carrera.
Por qué importa: la basura invisible rompe la coincidencia, no solo el aspecto
Los espacios de más no son un problema cosmético. Rompen la igualdad, y la igualdad es sobre lo que se construyen las búsquedas, la deduplicación y la agrupación.
="Apple"=A2devuelve FALSE cuandoA2es"Apple "— el espacio final hace que sean cadenas distintas.VLOOKUPyXLOOKUPdevuelven#N/Dsobre un valor que está "ahí mismo", porque la clave de una tabla tiene un espacio suelto que la otra no.- Una tabla dinámica o
UNIQUEseparan"North"y"North "en dos filas, y tus totales regionales cuentan doble sin que te enteres.
Cada uno de estos casos es invisible en la cuadrícula, que es lo que los hace
caros. TRIM sobre la clave de unión — o mejor, sobre la columna al importar —
es el seguro más barato de Excel.
El punto ciego de CLEAN (y el de TRIM)
CLEAN se diseñó para el rango de control ASCII, 0–31. Eso es genuinamente útil
para quitar saltos de línea CHAR(10) incrustados, pero sé honesto sobre su
límite: no elimina CHAR(160), y no toca otros duendes del rango alto como
los espacios de ancho cero (CHAR(8203)) que puede introducir el copiado desde
web moderno. Para esos, vuelves a SUBSTITUTE(A2, CHAR(8203), "").
La forma fiable de encontrar lo que tienes entre manos es CODE (primer
carácter) o UNICODE (para cualquier cosa por encima de 255): envuelve el
carácter sospechoso y lee su número, y luego lo eliminas con SUBSTITUTE por ese
número. Adivinar te gasta una tarde entera; CODE/UNICODE te lo dice en una
sola fórmula.
El criterio: limpia en la frontera, no en todas partes
El antipatrón tentador es esparcir TRIM dentro de cada fórmula que toque una
columna de texto — cada VLOOKUP, cada comparación, cada concatenación.
Funciona, pero es un mal olor: significa que los datos están sucios y estás
pagando por volver a limpiarlos en cada recálculo, para siempre.
La jugada profesional es limpiar una vez, en la frontera de importación. Trae
la columna en bruto, añade una columna auxiliar de
=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))), pégala de vuelta como valores y
borra la columna en bruto. A partir de ahí los datos están limpios y cada fórmula
posterior se mantiene sencilla. Si extraes datos con regularidad, las
transformaciones Recortar y Limpiar de Power Query hacen lo mismo como un
paso repetible — ese es el hogar adecuado para la limpieza recurrente. Recurre a
las fórmulas cuando sea algo puntual; recurre a Power Query cuando sea un flujo
de datos.
Cómo ayuda ExcelMaster
"¿Por qué no coincide este VLOOKUP si los valores se ven iguales?" es una de las
cosas que la gente más pregunta, y la respuesta es casi siempre espacio en blanco
invisible. ExcelMaster comprueba exactamente eso: detecta el espacio final o
el CHAR(160), te dice cuál es el carácter culpable y escribe la combinación de
TRIM/CLEAN/SUBSTITUTE que arregla la columna entera — no un parche envuelto
alrededor de una fórmula. Tú describes el síntoma ("la coincidencia sigue
fallando"); él encuentra la basura que no puedes ver.
Preguntas frecuentes
¿Cuál es la diferencia entre TRIM y CLEAN en Excel?
TRIM elimina los espacios de más — iniciales, finales y los interiores
repetidos (colapsándolos en uno), pero solo el carácter de espacio normal
(ASCII 32). CLEAN elimina los caracteres de control no imprimibles
(códigos 0–31), como los saltos de línea incrustados en una celda. Usa TRIM para
el espaciado y CLEAN para los glifos invisibles sueltos; anídalos como
TRIM(CLEAN(A2)) para atacar ambos.
¿Por qué TRIM no elimina el espacio de mi celda?
Porque probablemente no es un espacio normal. El texto pegado desde la web o un
PDF suele contener un espacio de no separación, CHAR(160), que TRIM ignora.
Confírmalo con =CODE(RIGHT(A2,1)) — si devuelve 160, arréglalo con
=TRIM(SUBSTITUTE(A2, CHAR(160), " ")).
¿TRIM elimina todos los espacios entre palabras?
No. TRIM conserva un solo espacio entre palabras y solo elimina los de más,
además de todo lo que haya al principio y al final. TRIM("a b") devuelve
"a b", no "ab". Para quitar todos los espacios, usa
SUBSTITUTE(A2, " ", "") en su lugar.
¿Cómo elimino los saltos de línea de una celda?
Usa CLEAN, que quita el carácter de salto de línea CHAR(10): =CLEAN(A2). Si
el salto de línea se insertó como un carácter distinto o además quieres
sustituirlo por un espacio, usa =SUBSTITUTE(A2, CHAR(10), " ").
¿Qué elimina a la vez los espacios de más y los caracteres no imprimibles?
Anida las tres herramientas: =TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), " "))). El
SUBSTITUTE convierte los espacios de no separación en normales, CLEAN quita
los caracteres de control y TRIM colapsa el espaciado restante.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación el 06/07/2026.
Guías relacionadas: Excel SUBSTITUTE y REPLACE · Excel LEN · Excel UPPER, LOWER y PROPER · Excel VALUE y NUMBERVALUE
