Jaka jest formuła do usuwania białych znaków z komórki Excela, gdy przycinanie nie działa?

10

Mam tabelę danych Excela, którą skopiowałem z tabeli HTML w Internet Explorerze. Kolumna wartości tabeli wydaje się mieć spację na końcu, ale Trimnie usuwa jej. Kiedy wklejam specjalną wartość wyniku Trimfunkcji, nadal ma ona spację na końcu.

Czy może to być jakiś inny biały znak, Trimktóry się nie usuwa?

Wysoce nieregularne
źródło
1
Jeśli spojrzysz na to w trybie, w którym możesz zobaczyć, jakie są postacie, jaki typ postaci nie jest usuwany?
soandos,
jeśli zrobisz = LEN (KOMÓRKA), to co zwróci?
kobaltz
1
Z ciekawości, jaki jest numer ASCII ostatniego znaku? Użyj =CODE(RIGHT(A1,1))(zakładając, że A1zawiera problematyczny tekst), aby go zobaczyć. Spacja to 32, Tab to 9, a nowe znaki linii to 10 i 13.
Hand-E-Food
1
@ Hand-E-Food, wynikiem tej funkcji jest 160
Wysoce nieregularny
@kobaltz, = LEN (KOMÓRKA) zwraca 9. Wartość komórki to (bez podwójnych cudzysłowów) „010-0000”, ale wydaje się, że przycięcie nie usuwa ostatniego znaku. Skopiuj i wklej, aby wstawić tutaj wartość, może zostać zmodyfikowane przez moją przeglądarkę jako spacja lub w inny sposób ...
Wysoce nieregularna

Odpowiedzi:

17

Znak 160 to nieprzerwana spacja , postać zaprojektowana tak, aby wyglądała jak spacja, ale nadal była częścią słowa, zmuszając sąsiednie słowa do pozostania razem. Możesz przekonwertować je na zwykłe spacje, a następnie użyć przycinania.

Zakładając, że tekst jest włączony A1, użyj:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))
Hand-E-Food
źródło
2
+1. Ten link jest przydatnym źródłem informacji . Dość często CLEAN, TRIMi SUBSTITUTEsą potrzebne do czynienia z tekstem
brettdj
1

Jeśli ma tylko jedną spację i załóżmy, że kolumna to 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
źródło
Gdyby tak było, przycinanie działałoby ...
soandos,
I z tego, co wskazują komentarze, działałoby to równie dobrze.
kobaltz
1
Ponieważ masz szczęście. Mogło tam być więcej niż jedna postać i nigdy byś nie wiedział. Ponadto druga odpowiedź zajmuje się nią bez względu na to, gdzie w komórce się pojawia, co czyni ją znacznie lepszą ogólną odpowiedzią w każdym przypadku.
soandos,
Chyba, że ​​miał coś takiego jak ASCII 160 i ASCII 161. Jeśli tak, jeśli znasz długość każdego łańcucha i widzisz, że jest to jedna z oczekiwanych, osobiście nie widzę problemu z tym. Jestem otwarty, aby spróbować zrozumieć twój pogląd, ale oba rozwiązania mają swoje ograniczenia w różnych środowiskach.
kobaltz
Zgoda. Chyba bardziej podoba mi się druga odpowiedź, ponieważ zidentyfikował problem, a następnie go rozwiązał. Masz rozwiązanie czegoś, co rozwiązuje podobne problemy. Widzę jednak twój punkt +1.
soandos,
0

Sugeruję, że łatwiej byłoby wybrać cały arkusz i użyć opcji Zamień (Ctrl + H), aby zastąpić każdą spację nieprzerwaną (NBSP) spacją. To wciąż pozostawia spacje na końcu komórek, ale unika usuwania NBSP ze środka komórek. Nadal potrzebujesz przycinania, ale jest to łatwiejsze niż przycinanie (SUBSTITUTE (...)).

Myślałem, że będę mógł wejść do NBSP za pomocą Alt + 160, ale to nie działało dla mnie. Musiałem użyć Wstaw symbol, aby umieścić NBSP w komórce, skopiować go stamtąd i upuścić w polu Znajdź.

W przypadku symbolu Wstaw NBSP jest pustą komórką w trzecim wierszu poniżej 4.

Jeśli jest to powtarzający się problem, możesz użyć rejestratora makr, aby zapisać zamianę. Jednak może być lepiej napisać makro, które używa ZNAJDŹ, aby zlokalizować NBSP w dowolnym miejscu dowolnego ciągu i albo zastąpić je spacją, albo usunąć zgodnie z jego pozycją w ciągu. To makro musiałoby się zapętlać, aż FIND się nie powiedzie.

Tony Dallimore
źródło
Możesz wpisać NBSP za pomocą Alt + 0160. Liczby od 1 do 3 cyfr to ASCII, liczby czterocyfrowe to Unicode.
Hand-E-Food
Poddałem się, gdy tylko nie zadziałało. Twój komentarz przekonał mnie do ponownej próby. Zapomniałem, że działa tylko z klawiaturą numeryczną, która na laptopie znajduje się na środku klawiatury. Spróbuję zapamiętać, kiedy następnym razem będę musiał wprowadzić postać w ten sposób. Dzięki za podpowiedź.
Tony Dallimore,
0

Wypróbuj funkcję CLEAN (x) - pozbywa się tego całego guffa, zwłaszcza gdy masz mieszankę 161, 160 itd.

Sarah
źródło
nie, nie robi. na pewno nie działało z 160.
robotik