Qual é a fórmula para remover o espaço em branco de uma célula do Excel quando o corte não funciona?


10

Eu tenho uma tabela de dados do Excel que copiei de uma tabela html no Internet Explorer. Todos os valores de uma coluna de tabela parecem ter um espaço no final deles, mas Trimnão serão removidos. Quando colo-special o valor do resultado da Trimfunção, ele ainda possui o espaço em branco no final.

Poderia ser algum outro tipo de caractere de espaço em branco que Trimnão remove?


1
Se você olhar para ele no modo em que poderá ver que tipo de personagem existe, que tipo de personagem não está sendo removido?
soandos

Se você fizer = LEN (CELL), o que isso retornará?
kobaltz

1
Por curiosidade, qual é o número ASCII do último caractere? Use =CODE(RIGHT(A1,1))(assumindo A1o texto problemático) para vê-lo. O espaço é 32, Tab é 9, e novos caracteres de linha são 10 e 13.
Mão-E-Food

1
@ Hand-E-Food, o resultado dessa função é 160
Altamente Irregular

@kobaltz, = LEN (CELL) retorna 9. O valor da célula é (sem as aspas duplas) "010-0000", mas o aparar não parece remover o último caractere. A copiar e colar para colocar o valor aqui bem pode ser modificado para ser um espaço pelo meu navegador ou outros meios ...
altamente irregular

Respostas:


17

O caractere 160 é um espaço ininterrupto , um personagem projetado para parecer um espaço, mas ainda fazer parte da palavra, forçando as palavras adjacentes a permanecerem juntas. Você pode convertê-los em espaços regulares e usar o recorte.

Supondo que o texto esteja dentro A1, use:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))

2
+1. Este link é uma referência útil . Muitas vezes CLEAN, TRIMe SUBSTITUTEsão todas necessárias para lidar com cordas
brettdj

1

Se ele tiver apenas um espaço e vamos assumir que a coluna é 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)

Se era isso que era, então a guarnição funcionaria ...
soandos

E pelo que os comentários indicam, isso também teria funcionado.
Kdubtz

1
Porque você teve sorte. O poderia ter sido mais de um personagem lá, e você nunca saberia. Além disso, a outra resposta lida com ela, não importa em que lugar da célula ela ocorra, tornando-a uma resposta geral muito melhor em qualquer caso.
soandos

A menos que houvesse algo como ASCII 160 e ASCII 161. Onde como, se você souber o comprimento de cada string e perceber que está fora do esperado, pessoalmente não vejo o problema com isso. Estou aberto para tentar entender sua opinião, mas ambas as soluções têm limitações em ambientes diferentes.
kobaltz

Acordado. Acho que gosto mais da outra resposta porque ele identificou o problema e o resolveu. Você tem uma solução para algo que resolve problemas semelhantes. Entendo o seu ponto, +1.
soandos

0

Sugiro que seria mais fácil selecionar a planilha inteira e usar Substituir (Ctrl + H) para substituir todos os espaços não quebrados (NBSP) por um espaço. Isso ainda deixa espaços no final das células, mas evite remover NBSPs do meio das células. Você ainda precisa do Trim, mas isso é mais fácil que o TRIM (SUBSTITUTE (...)).

Eu pensei que seria capaz de entrar em um NBSP usando Alt + 160, mas não funcionou para mim. Eu tive que usar o Insert Symbol para colocar um NBSP em uma célula, copiá-lo e soltá-lo no campo Localizar.

Com o símbolo de inserção, NBSP é a célula vazia na terceira linha em 4.

Se este for um problema repetitivo, você poderá usar o gravador de macro para salvar o item Substituir. No entanto, talvez seja melhor escrever uma macro que use FIND para localizar o NBSP em qualquer lugar de qualquer sequência e substitua-a por espaço ou exclua-a de acordo com sua posição na sequência. Essa macro precisaria fazer um loop até FIND falhar.


Você pode digitar NBSP com Alt + 0160. Números de um a três dígitos são ASCII, números de quatro dígitos são unicode.
Hand-E-Food

Desisti assim que não funcionou. Seu comentário me convenceu a tentar novamente. Eu tinha esquecido que só funcionava com o teclado numérico que está em um laptop no meio do teclado. Vou tentar lembrar da próxima vez que precisar inserir um caractere dessa maneira. Obrigado pelo aviso.
Tony Dallimore

0

Experimente a função CLEAN (x) - ela se livra de toda essa bobagem, especialmente onde você tem uma mistura de 161, 160 etc.


não, não faz. não funcionou com 160, com certeza.
robotik 12/01/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.