¿Qué es una fórmula para eliminar el espacio en blanco de una celda de Excel cuando el recorte no funciona?

10

Tengo una tabla de datos de Excel que copié de una tabla html en Internet Explorer. Una columna de valores de tabla parece tener un espacio al final, pero Trimno lo elimina. Cuando pego-especial el valor del resultado de la Trimfunción, todavía tiene el espacio en blanco al final.

¿Podría ser algún otro tipo de carácter de espacio en blanco que Trimno se elimine?

Altamente irregular
fuente
1
Si lo miras en el modo donde puedes ver qué tipo de personajes hay, ¿qué tipo de personaje no se eliminará?
soandos
si lo haces = LEN (CELL) entonces, ¿qué devuelve?
kobaltz
1
Por curiosidad, ¿cuál es el número ASCII del último personaje? Use =CODE(RIGHT(A1,1))(asumiendo A1contians el texto problemático) para verlo. El espacio es 32, Tab es 9, y los nuevos caracteres de línea son 10 y 13.
Hand-E-Food
1
@ Hand-E-Food, el resultado de esa función es 160
Muy irregular
@kobaltz, = LEN (CELL) devuelve 9. El valor de la celda es (sin las comillas dobles) "010-0000", pero el recorte no parece eliminar el último carácter. La copia y pegue para poner el valor aquí bien puede ser modificada para que sea un espacio por mi navegador, o por algún otro medio ...
Muy irregular

Respuestas:

17

El carácter 160 es un espacio ininterrumpido , un personaje diseñado para parecerse a un espacio pero que sigue siendo parte de la palabra, lo que obliga a las palabras adyacentes a permanecer juntas. Puede convertirlos en espacios regulares y luego usar recortar.

Suponiendo que el texto esté adentro A1, use:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))
Hand-E-Food
fuente
2
+1. Este enlace es una referencia útil . Muy a menudo CLEAN, TRIMy SUBSTITUTEtodos son necesarios para lidiar con cuerdas
brettdj
1

Si solo tiene un espacio y supongamos que la columna es A.

A1= "CELL A1 "
A2= "CELL A2 "

Then B1 would be =LEFT(A1, LEN(A1)-1)
Then B2 would be =LEFT(A2, LEN(A2)-1)
Kobaltz
fuente
Si eso era lo que era, luego recorte funcionaría ...
soandos
Y por lo que indican los comentarios, esto habría funcionado igual de bien.
kobaltz
1
Porque tuviste suerte. Podría haber habido más de un personaje allí, y nunca lo hubieras sabido. Además, la otra respuesta se ocupa de ella sin importar en qué parte de la celda ocurra, por lo que es una respuesta general mucho mejor en cualquier caso.
soandos
A menos que tuviera algo así como ASCII 160 y ASCII 161. Donde, si conoce la longitud de cada cadena y ve que es una diferencia de lo que se espera, personalmente no veo el problema con esto. Estoy abierto a tratar de entender su punto de vista, pero ambas soluciones tienen sus limitaciones en diferentes entornos.
kobaltz
Convenido. Supongo que me gusta más la otra respuesta porque identificó el problema y luego lo resolvió. Tienes una solución para algo que resuelve problemas similares. Sin embargo, veo tu punto, +1.
soandos
0

Sugiero que sería más fácil seleccionar toda la hoja de trabajo y usar Reemplazar (Ctrl + H) para reemplazar cada espacio sin interrupción (NBSP) con un espacio. Esto todavía deja espacios al final de las celdas, pero evita eliminar los NBSP del centro de las celdas. Aún necesita Trim, pero eso es más fácil que TRIM (SUSTITUTO (...)).

Pensé que podría ingresar un NBSP usando Alt + 160, pero no funcionó para mí. Tuve que usar Insertar símbolo para colocar un NBSP en una celda, copiarlo de allí y soltarlo en el campo Buscar.

Con Insertar símbolo, NBSP es la celda vacía en la tercera línea debajo de 4.

Si este es un problema repetitivo, puede usar la grabadora de macros para guardar el Reemplazar. Sin embargo, podría ser mejor escribir una macro que use FIND para ubicar NBSP en cualquier lugar dentro de cualquier cadena y reemplazarlo con espacio o eliminarlo de acuerdo con su posición dentro de la cadena. Esta macro necesitaría un bucle hasta que FIND falle.

Tony Dallimore
fuente
Puede escribir NBSP con Alt + 0160. Los números de uno a tres dígitos son ASCII, los números de cuatro dígitos son unicode.
Hand-E-Food
Me rendí tan pronto como no funcionó. Su comentario me persuadió a intentarlo de nuevo. Había olvidado que solo funcionaba con el teclado numérico que en una computadora portátil está en el medio del teclado. Trataré de recordar la próxima vez que necesite ingresar un personaje de esta manera. Gracias por el aviso.
Tony Dallimore
0

Pruebe la función LIMPIAR (x): elimina todo ese error, especialmente cuando tiene una mezcla de 161, 160, etc.

Sarah
fuente
No, no lo hace. no funcionó con 160 con seguridad.
robotik