En este artículo 20 secciones
- Por qué los espacios causan errores.
- Quitar los espacios sobrantes con ESPACIOS.
- Quitar todos los espacios con SUSTITUIR.
- Cuando ESPACIOS no funciona: el espacio duro.
- Quitar espacios en toda la hoja con reemplazar.
- Quitar espacios con una macro.
- Reemplazar los datos originales por los datos limpios.
- Descargar el ejemplo en Excel.
- Preguntas frecuentes.
- ¿Cuál es la fórmula para quitar espacios en Excel?
- ¿La función ESPACIOS quita los espacios entre palabras?
- ¿Por qué ESPACIOS no me quita los espacios?
- ¿Cómo quito los espacios entre números?
- ¿Cómo quito los espacios de toda una columna a la vez?
- ¿Cómo hago un salto de línea dentro de una celda?
- ¿Cómo sé si una celda tiene espacios ocultos?
- Artículos relacionados
Los espacios sobrantes al inicio, al final o entre las palabras de una celda impiden que funcionen las búsquedas, los cruces de bases de datos y las operaciones con números. Excel los elimina con la función ESPACIOS, con SUSTITUIR o con la herramienta de reemplazar, según dónde estén y de qué tipo sean. ¿Cuál usar en cada caso y qué hacer cuando ninguna funciona?
Por qué los espacios causan errores.
Para Excel, «Bogotá» y «Bogotá » con un espacio al final son textos distintos. Por eso un BUSCARV no encuentra un dato que a simple vista está ahí, un filtro muestra dos veces el mismo nombre o una suma ignora números que tienen un espacio adelante, porque los trata como texto.
El problema es frecuente cuando la información se importa desde otro programa, se descarga de una plataforma o se copia desde una página web, y suele pasar desapercibido porque los espacios no se ven.
- Liquidador de intereses propiedad horizontal
- Proyección y planeación pensional
- Liquidador de renta personas naturales
Quitar los espacios sobrantes con ESPACIOS.
La función ESPACIOS hace tres cosas a la vez: elimina los espacios al inicio de la celda, elimina los espacios al final y reduce a uno solo los espacios repetidos entre palabras. Supongamos que en A2 tenemos « Juan Pérez »:
=ESPACIOS(A2)
El resultado es «Juan Pérez», con un único espacio entre el nombre y el apellido. Es la función indicada para nombres, direcciones y cualquier texto que deba conservar la separación entre palabras.
La fórmula se escribe en una columna auxiliar y se copia hacia abajo en toda la lista. Al final explicamos cómo reemplazar los datos originales por el resultado.
Quitar todos los espacios con SUSTITUIR.
Cuando lo que necesitamos es eliminar todos los espacios, incluidos los que hay entre palabras o entre números, usamos SUSTITUIR, que reemplaza un carácter por otro:
=SUSTITUIR(A2;" ";"")
El segundo argumento, un espacio entre comillas, es lo que buscamos; el tercero, comillas sin nada en medio, es lo que ponemos en su lugar. Si A2 contiene «900 123 456», el resultado es «900123456».
Es útil para números de cédula, NIT, cuentas o teléfonos que vienen separados por espacios, pero no para nombres, porque «Juan Pérez» quedaría «JuanPérez».
Quitar espacios entre números y convertirlos en número.
Aun sin espacios, el resultado de SUSTITUIR sigue siendo texto y no se puede sumar. Para convertirlo en número lo envolvemos en la función VALOR:
=VALOR(SUSTITUIR(A2;" ";""))
Ejemplo: si A2 contiene «1 250 000», la fórmula devuelve el número 1.250.000, que ya se puede sumar, promediar o usar en cualquier cálculo.
Cuando ESPACIOS no funciona: el espacio duro.
Es la situación que más consultas genera: aplicamos ESPACIOS y los espacios siguen ahí. Casi siempre se trata del espacio duro o espacio de no separación, un carácter que se ve igual que un espacio, pero que tiene otro código, el 160 en lugar del 32. Llega con frecuencia en datos copiados de páginas web y de algunos sistemas contables.
La función ESPACIOS solo reconoce el espacio normal, por lo que primero hay que convertir el espacio duro en uno normal con SUSTITUIR y la función CARACTER:
=ESPACIOS(SUSTITUIR(A2;CARACTER(160);" "))
Si se trata de números, como el caso de un lector que tenía toda una columna con valores del tipo « 56.197» que no se dejaban limpiar, la fórmula completa es:
=VALOR(ESPACIOS(SUSTITUIR(A2;CARACTER(160);" ")))
El resultado es el número 56.197, listo para sumar. Si el número usa punto como separador de miles y la configuración del computador también, VALOR lo interpreta correctamente.
Tabulaciones, saltos de línea y caracteres invisibles.
Además del espacio duro, hay otros caracteres que no se ven: tabulaciones, saltos de línea y caracteres de control que dejan algunos programas al exportar. Se eliminan con la función LIMPIAR, que suprime los caracteres no imprimibles.
La fórmula que resuelve la mayoría de los casos combina las tres funciones:
=ESPACIOS(LIMPIAR(SUSTITUIR(A2;CARACTER(160);" ")))
Primero convierte los espacios duros en normales, luego elimina los caracteres invisibles y por último quita los espacios sobrantes.
Hay una precaución con los saltos de línea: LIMPIAR los elimina sin dejar nada en su lugar, de modo que «Calle 10» y «No. 5-20», escritos en dos renglones, quedan pegados como «Calle 10No. 5-20». Si la celda tiene saltos de línea, conviene reemplazarlos primero por un espacio:
=ESPACIOS(LIMPIAR(SUSTITUIR(SUSTITUIR(A2;CARACTER(160);" ");CARACTER(10);" ")))
Esta versión deja «Calle 10 No. 5-20», con las dos partes separadas.
Cómo saber qué carácter hay al inicio de una celda.
Cuando un aplicativo rechaza un dato con mensajes como «el primer valor debe ser una letra», aunque a la vista el dato empiece por una letra, es casi seguro que hay un carácter invisible adelante. Para identificarlo usamos la función CODIGO sobre el primer carácter:
=CODIGO(IZQUIERDA(A2;1))
La función devuelve el código del carácter. Los resultados más comunes son estos:
| Código | Qué significa |
|---|---|
| 32 | Espacio normal: se quita con ESPACIOS. |
| 160 | Espacio duro: se convierte con SUSTITUIR(A2;CARACTER(160);" "). |
| 9 | Tabulación: se quita con LIMPIAR. |
| 10 | Salto de línea: se reemplaza por un espacio con SUSTITUIR(A2;CARACTER(10);" "). |
| 65 a 90 o 97 a 122 | Letra normal: el inicio de la celda está limpio. |
También ayuda comparar la longitud del texto con =LARGO(A2): si «JUAN» devuelve 5, hay un carácter de más en algún lugar.
Quitar espacios en toda la hoja con reemplazar.
Las fórmulas exigen una columna auxiliar. Si queremos limpiar los datos directamente en su lugar, usamos la herramienta de buscar y reemplazar:
- Seleccionamos el rango que queremos limpiar. Si no seleccionamos nada, el cambio se aplica a toda la hoja.
- Presionamos Ctrl + L para abrir la ventana «Reemplazar».
- En «Buscar» escribimos un espacio, presionando una vez la barra espaciadora.
- Dejamos «Reemplazar con» completamente vacío.
- Damos clic en «Reemplazar todos».
Hay que usarla con cuidado, porque elimina todos los espacios, también los que separan palabras. Sirve para columnas de códigos o números, no para nombres.
Para reemplazar espacios duros con esta herramienta, en el campo «Buscar» se mantiene presionada la tecla Alt y se digita 0160 en el teclado numérico.
Quitar espacios con una macro.
Cuando la limpieza se repite a menudo, por ejemplo con un reporte que se descarga cada semana, una macro aplica la limpieza completa sobre las celdas seleccionadas, sin columnas auxiliares:
Sub QuitarEspacios()
Dim celda As Range
For Each celda In Selection.Cells
If Not celda.HasFormula And VarType(celda.Value) = vbString Then
celda.Value = Application.WorksheetFunction.Trim( _
Application.WorksheetFunction.Clean( _
Replace(celda.Value, Chr(160), " ")))
End If
Next celda
End Sub
La macro recorre cada celda seleccionada, omite las que tienen fórmulas y los valores que no son texto, y aplica la misma combinación de funciones explicada antes. Para usarla se abre el editor con Alt + F11, se inserta un módulo y se pega el código.
Reemplazar los datos originales por los datos limpios.
Cuando usamos fórmulas, el resultado depende de la columna original, de modo que no podemos borrarla. Para conservar solo los datos limpios:
- Seleccionamos la columna con las fórmulas y la copiamos con Ctrl + C.
- Damos clic derecho sobre la primera celda de la columna original y elegimos «Pegado especial», opción «Valores».
- Borramos la columna auxiliar.
Este paso es necesario antes de usar los datos en un BUSCARV o de cargarlos en un aplicativo. Para limpiar nombres que luego se van a unir, consulte también el artículo sobre la fórmula para unir nombres y apellidos.
Descargar el ejemplo en Excel.
El archivo de ejemplo contiene datos con espacios al inicio y al final, espacios dobles, espacios duros, tabulaciones y números con espacios, y aplica cada fórmula de este artículo para comparar qué limpia cada una. Descargar archivo.
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cuál es la fórmula para quitar espacios en Excel?
=ESPACIOS(A2) quita los espacios del inicio y del final y deja uno solo entre palabras. Para quitar todos los espacios se usa =SUSTITUIR(A2;" ";"").
¿La función ESPACIOS quita los espacios entre palabras?
No del todo. Reduce a uno los espacios repetidos, pero conserva un espacio entre cada palabra. Para quitarlos todos hay que usar SUSTITUIR.
¿Por qué ESPACIOS no me quita los espacios?
Porque probablemente son espacios duros, de código 160. Se eliminan con =ESPACIOS(SUSTITUIR(A2;CARACTER(160);" ")).
¿Cómo quito los espacios entre números?
Con =SUSTITUIR(A2;" ";""), y si además se necesita operar con el resultado, con =VALOR(SUSTITUIR(A2;" ";"")).
¿Cómo quito los espacios de toda una columna a la vez?
Seleccionando la columna y usando Ctrl + L: en «Buscar» un espacio y en «Reemplazar con» nada. Elimina todos los espacios, incluidos los que separan palabras.
¿Cómo hago un salto de línea dentro de una celda?
Con Alt + Enter mientras se escribe en la celda. Para quitar los saltos de línea se usa =SUSTITUIR(A2;CARACTER(10);" ") o la función LIMPIAR.
¿Cómo sé si una celda tiene espacios ocultos?
Comparando =LARGO(A2) con el número de caracteres visibles, o revisando el primer carácter con =CODIGO(IZQUIERDA(A2;1)).
¿Cómo puedo eliminar los espacios ocultos en una celda? Elaboré una lista de nombres que debo cargar a un aplicativo. Sin embargo, por primera vez me sale un mensaje que dice “El primer valor debe ser una letra”. Es un mensaje raro, nunca antes me había salido. He revisado todos los nombres uno por uno y no tienen ningún espacio o carácter distinto al inicio de cada nombre.
Usar la fórmula “ESPACIOS”.
No me funciona ninguna de las opciones. En una ocasión utilicé un comando de VBA, pero no lo recuerdo. Tengo una columna donde todos los valores están así: ” 56.197″. Intenté con varias fórmulas y reemplazar, pero nada.
Ayuda.
¿Será que lo que tienes está tabulado?