Sadržaj
U ovom članku ćete naučiti kako izbrisati određene znakove iz tekstualnog niza i ukloniti neželjene znakove iz više ćelija odjednom.
Kada uvozite podatke u Excel s nekog drugog mjesta, puno specijalnih znakova može doći do vaših radnih listova. Ono što je još više frustrirajuće je da su neki znakovi nevidljivi, što stvara dodatni bijeli prostor prije, poslije ili unutar tekstualnih nizova. Ovaj vodič pruža rješenja za sve ove probleme, štedeći vas muke da morate prolaziti kroz podatke ćeliju po ćeliju i ručno brisati neželjene znakove.
Uklonite specijalni znak iz Excel ćelije
Da biste izbrisali određeni znak iz ćelije, zamijenite ga praznim nizom koristeći funkciju SUBSTITUTE u njenom najjednostavnijem obliku:
SUBSTITUTE( cell, char, "")Na primjer, da biste iskorijenili upitnik iz A2, formula u B2 je:
=SUBSTITUTE(A2, "?", "")
Za uklanjanje znak koji nije prisutan na vašoj tastaturi, možete ga kopirati/zalijepiti u formulu iz originalne ćelije.
Na primjer, evo kako se možete riješiti obrnutog upitnika:
=SUBSTITUTE(A2, "¿", "")
Ali ako je neželjeni znak nevidljiv ili se ne kopira ispravno, kako ga staviti u formulu? Jednostavno, pronađite njegov kodni broj pomoću funkcije CODE.
U našem slučaju, neželjeni znak ("¿") dolazi zadnji u ćeliji A2, tako da koristimo kombinacijufunkcija CODE i RIGHT da dohvate njegovu jedinstvenu vrijednost koda, a to je 191:
=CODE(RIGHT(A2))
Kada dobijete kod karaktera, poslužite odgovarajući CHAR funkciju prema generičkoj formuli iznad. Za naš skup podataka, formula glasi kako slijedi:
=SUBSTITUTE(A2, CHAR(191),"")
Napomena. Funkcija SUBSTITUTE je osetljiva na velika i mala slova , što znači da tretira mala i velika slova kao različite znakove. Imajte to na umu ako je vaš neželjeni lik slovo.
Izbriši više znakova iz stringa
U jednom od prethodnih članaka, pogledali smo kako ukloniti određene znakove iz stringova u Excelu ugniježđenjem nekoliko funkcija SUBSTITUTE jedna u drugu. Isti pristup se može koristiti za uklanjanje dva ili više neželjenih znakova u jednom potezu:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Na primjer, da biste iskorijenili normalne uskličnike i upitnike, kao i one obrnute iz tekstualnog niza u A2, koristite ovu formulu:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Isto se može učiniti uz pomoć CHAR funkcije, gdje je 161 šifra znaka za "¡", a 191 je šifra znaka za "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Ugniježđene funkcije SUBSTITUTE rade dobro za razuman broj znakova, ali ako imate desetine znakova za uklanjanje, formula postaje predugačka i teška za upravljanje. Sljedeći primjer pokazuje akompaktnije i elegantnije rješenje.
Uklonite sve neželjene znakove odjednom
Rješenje radi samo u Excelu za Microsoft 365
Kao što vjerojatno znate, Excel 365 ima posebnu funkciju koja vam omogućava da kreirate sopstvene funkcije, uključujući i one koje računaju rekurzivno. Ova nova funkcija je nazvana LAMBDA, a sve pojedinosti o njoj možete pronaći u gore povezanom vodiču. U nastavku ću ilustrirati koncept s nekoliko praktičnih primjera.
Prilagođena LAMBDA funkcija za uklanjanje neželjenih znakova je sljedeća:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Da biste mogli koristiti ovu funkciju u svojim radnim listovima, morate joj prvo dati naziv. Za ovo pritisnite Ctrl + F3 da otvorite Upravitelj imena , a zatim definirajte Novo ime na ovaj način:
- U Ime polje, unesite naziv funkcije: RemoveChars .
- Postavite opseg na Radna sveska .
- U Odnosi se na , zalijepite gornju formulu.
- Po želji, unesite opis parametara u okvir Komentari . Parametri će se prikazati kada unesete formulu u ćeliju.
- Kliknite na OK da biste spremili novu funkciju.
Za detaljne upute pogledajte Kako imenovati prilagođenu LAMBDA funkciju.
Kada funkcija dobije ime, možete se odnositi na nju kao na bilo koju prirodnu formulu.
Iz korisničke tačke gledišta , sintaksa naše prilagođene funkcije je jednostavna kaoovo:
RemoveChars(string, chars)Gdje:
- String - je originalni niz, ili referenca na ćeliju/opseg koji sadrži string( s).
- Znakovi - znakovi za brisanje. Može se predstaviti tekstualnim nizom ili referencom ćelije.
Radi praktičnosti, unosimo neželjene znakove u neku ćeliju, recimo D2. Da biste uklonili te znakove iz A2, formula je:
=RemoveChars(A2, $D$2)
Da bi formula radila ispravno, obratite pažnju na sljedeće stvari:
- U D2 , znakovi su navedeni bez razmaka, osim ako ne želite eliminirati i razmake.
- Adresa ćelije koja sadrži specijalne znakove zaključana je znakom $ ($D$2) kako bi se spriječilo da se referenca promijeni prilikom kopiranja formulu u ćelije ispod.
A zatim, jednostavno povučemo formulu prema dolje i izbrišemo sve znakove navedene u D2 iz ćelija A2 do A6:
Da biste očistili više ćelija s jednom formulom, navedite raspon A2:A6 za 1. argument:
=RemoveChars(A2:A6, D2)
Pošto se formula unosi samo u najvišu ćeliju, ne morate brinuti o zaključavanju koordinata ćelije - relativna referenca (D2) radi dobro u ovom slučaju. A zbog podrške za dinamičke nizove, formula se automatski prelijeva u sve referencirane ćelije:
Uklanjanje unaprijed definiranog skupa znakova
Za brisanje unaprijed definiranog skupa znakova znakove iz više ćelija, možete kreiratidrugi LAMBDA koji poziva glavnu funkciju RemoveChars i specificira nepoželjne znakove u 2. parametru. Na primjer:
Da izbrišemo posebnih znakova , kreirali smo prilagođenu funkciju pod nazivom RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To ukloni brojeve iz tekstualnih nizova, kreirali smo još jednu funkciju pod nazivom RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Obje gore navedene funkcije su super jednostavne za korištenje jer zahtijeva samo jedan argument - originalni niz.
Da biste eliminirali posebnih znakova iz A2, formula je:
=RemoveSpecialChars(A2)
Za brisanje samo numeričkih znakova:
=RemoveNumbers(A2)
Kako ova funkcija funkcionira:
U suštini, funkcija RemoveChars petlja kroz listu znakova i uklanja jedan po jedan znak. Prije svakog rekurzivnog poziva, funkcija IF provjerava preostale znakove. Ako string chars nije prazan (chars""), funkcija poziva samu sebe. Čim je zadnji znak obrađen, formula vraća string u sadašnjem obliku i izlazi.
Za detaljnu analizu formule, pogledajte Rekurzivni LAMBDA za uklanjanje neželjenih znakova.
Uklonite posebne znakove pomoću VBA
Funkcije rade u svim verzijama Excela
Ako LAMBDA funkcija nije dostupna u vašem Excelu, ništa vas ne sprječava od kreiranja slične funkcije sa VBA. Korisnički definiranfunkcija (UDF) se može napisati na dva načina.
Prilagođena funkcija za brisanje specijalnih znakova rekurzivno :
Ovaj kod oponaša logiku LAMBDA funkcije o kojoj je bilo riječi.
Funkcija RemoveUnwantedChars(str As String, chars As String) If ("" chars) Tada str = Replace(str, Lijevo(chars, 1), "") chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End FunkcijaPrilagođena funkcija za uklanjanje specijalnih znakova nerekurzivno :
Ovdje kružimo kroz neželjene znakove od 1 do Len(chars) i zamijenite one pronađene u originalnom nizu ničim. Funkcija MID povlači neželjene znakove jedan po jedan i prosljeđuje ih funkciji Replace.
Funkcija RemoveUnwantedChars(str As String, chars As String) Za indeks = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Sljedeće RemoveUnwantedChars = str Završna funkcijaUmetnite jedan od gornjih kodova u svoju radnu knjigu kao što je objašnjeno u Kako umetnuti VBA kod u Excel i vaša prilagođena funkcija je spremna za upotrebu.
Da ne bismo brkali našu novu korisnički definiranu funkciju s onom definiranom Lambda, nazvali smo je drugačije:
RemoveUnwantedChars(string, chars)Pod pretpostavkom da je originalni niz u A2, a neželjeni znakovi u D2, možemo ih se riješiti pomoću ove formule:
= RemoveUnwantedChars(A2, $D$2)
Prilagođena funkcija s tvrdo kodiranimcharacters
Ako ne želite da se trudite oko davanja posebnih znakova za svaku formulu, možete ih specificirati direktno u kodu:
Funkcija RemoveSpecialChars(str As String ) Kao Niz Dim znakovi Kao String Dim indeks As Dugi znakovi = "?¿!¡*%#$(){}[]^&/\~+-" Za indeks = 1 Do Len(znakovi) str = Zamijeni(str, Mid(znakovi, indeks, 1) , "" ) Sljedeće RemoveSpecialChars = str End FunkcijaImajte na umu da je gornji kod u svrhu demonstracije. Za praktičnu upotrebu, obavezno uključite sve znakove koje želite da izbrišete u sljedeći red:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Ova prilagođena funkcija se zove RemoveSpecialChars i zahtijeva samo jedan argument - originalni niz:
RemoveSpecialChars(string)Da biste uklonili posebne znakove iz našeg skupa podataka, formula je:
=RemoveSpecialChars(A2)
Uklonite znakove koji se ne mogu štampati u programu Excel
Microsoft Excel ima posebnu funkciju za brisanje znakova koji se ne štampaju - funkciju CLEAN. Tehnički, uklanja prva 32 znaka u 7-bitnom ASCII skupu (kodovi od 0 do 31).
Na primjer, da biste izbrisali neispisivih znakova iz A2, evo formule za korištenje :
=CLEAN(A2)
Ovo će eliminisati znakove koji se ne štampaju, ali će razmaci prije/poslije teksta i između riječi ostati.
Za riješite se dodatnih razmaka , umotajte formulu CLEAN u funkciju TRIM:
=TRIM(CLEAN(A2))
Sada, sve vodeći izadnji razmaci se uklanjaju, dok se međuprostori smanjuju na jedan razmak:
Ako želite izbrisati apsolutno sve razmake unutar niz, a zatim dodatno zamijenite razmak (kodni broj 32) praznim nizom:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Neki razmaci ili drugi nevidljivi znakovi i dalje ostaju u tvoj radni list? To znači da ti znakovi imaju različite vrijednosti u Unicode skupu znakova.
Na primjer, kod znakova razmaka ( ) je 160 i možete ga očistiti pomoću ove formule:
=SUBSTITUTE(A2, CHAR(160)," ")
Da biste izbrisali specifičan znak koji se ne štampa , morate prvo pronaći njegovu vrijednost koda. Detaljna uputstva i primjeri formula su ovdje: Kako ukloniti određeni znak koji se ne ispisuje.
Izbrišite posebne znakove pomoću Ultimate Suite
Podržava Excel za Microsoft 365, Excel 2019 - 2010
U ovom posljednjem primjeru, dopustite mi da vam pokažem najlakši način za uklanjanje posebnih znakova u Excelu. Uz instaliran Ultimate Suite, ovo je ono što trebate učiniti:
- Na kartici Ablebits Data , u grupi Text , kliknite na Ukloni > Ukloni znakove .
Za trenutak ćete dobiti savršen rezultat:
Ako nešto krene po zlu, ne brinite - sigurnosna kopija vašeg radnog lista će se automatski kreirati pošto je okvir Napravi sigurnosnu kopiju ovog radnog lista odabran prema zadanim postavkama.
Želite li isprobati naš alat za uklanjanje? Link do verzije za evaluaciju je odmah ispod. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!
Dostupna preuzimanja
Izbrišite specijalne znakove - primjere (.xlsm fajl)
Ultimate Suite - probno verzija (.exe fajl)