Sadržaj
U ovom ćete članku naučiti kako izbrisati određene znakove iz tekstualnog niza i ukloniti neželjene znakove iz više ćelija odjednom.
Prilikom uvoza podataka u Excel s nekog drugog mjesta, mnoštvo posebnih znakova može putovati na vaše radne listove. Ono što je još frustrirajuće je to što su neki znakovi nevidljivi, što stvara dodatni bijeli prostor prije, iza ili unutar tekstualnih nizova. Ovaj vodič pruža rješenja za sve te probleme, pošteđujući vas problema da morate prolaziti kroz podatke ćeliju po ćeliju i ručno brisati neželjene znakove.
Uklonite poseban znak iz Excel ćelije
Da biste izbrisali određeni znak iz ćelije, zamijenite ga praznim nizom pomoću funkcije SUBSTITUTE u najjednostavnijem obliku:
SUBSTITUTE( cell, char, "")Na primjer, da biste uklonili upitnik iz A2, formula u B2 je:
=SUBSTITUTE(A2, "?", "")
Da biste uklonili znak koji nije prisutan na vašoj tipkovnici, možete ga kopirati/zalijepiti u formulu iz izvorne ć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 za dohvaćanje jedinstvene vrijednosti koda, koja je 191:
=CODE(RIGHT(A2))
Kada dobijete kod znaka, poslužite odgovarajući CHAR funkcioniraju prema gornjoj generičkoj formuli. Za naš skup podataka, formula je sljedeća:
=SUBSTITUTE(A2, CHAR(191),"")
Napomena. Funkcija SUBSTITUTE je osjetljiva na velika i mala slova , što znači da mala i velika slova tretira kao različite znakove. Imajte to na umu ako je vaš neželjeni lik slovo.
Brisanje više znakova iz niza
U jednom od prethodnih članaka, pogledali smo kako ukloniti određene znakove iz nizova u Excelu ugniježđujući nekoliko SUBSTITUTE funkcija jednu u drugu. Isti pristup može se koristiti za uklanjanje dva ili više neželjenih znakova odjednom:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Na primjer, da biste uklonili 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ć funkcije CHAR, gdje je 161 kod znaka za "¡", a 191 kod znaka za "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Ugniježđene funkcije SUBSTITUTE rade dobro za razuman broj znakova, ali ako imate desetke znakova za uklanjanje, formula postaje preduga i teško ju je upravljati. Sljedeći primjer pokazuje akompaktnije i elegantnije rješenje.
Uklonite sve neželjene znakove odjednom
Rješenje radi samo u programu Excel za Microsoft 365
Kao što vjerojatno znate, Excel 365 ima posebnu funkciju koja vam omogućuje stvaranje vlastitih funkcija, uključujući one koje računaju rekurzivno. Ova nova funkcija zove se LAMBDA, a sve pojedinosti o njoj možete pronaći u gore navedenom 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, prvo joj morate dati naziv. U tu svrhu pritisnite Ctrl + F3 da biste otvorili Upravitelj naziva , a zatim definirajte Novo ime na ovaj način:
- U Imenu unesite naziv funkcije: RemoveChars .
- Postavite opseg na Radna knjiga .
- U Odnosi se na , zalijepite gornju formulu.
- Po želji, unesite opis parametara u okvir Komentari . Parametri će se prikazati kada upišete formulu u ćeliju.
- Kliknite U redu da biste spremili svoju novu funkciju.
Za detaljne upute pogledajte Kako imenovati prilagođenu LAMBDA funkciju.
Jednom kada funkcija dobije naziv, možete se pozivati na nju kao na bilo koju izvornu formulu.
S gledišta korisnika , sintaksa naše prilagođene funkcije jednostavna je kaoovo:
RemoveChars(string, chars)Gdje:
- String - je originalni niz ili referenca na ćeliju/raspon koji sadrži niz( 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. Za uklanjanje tih znakova iz A2, formula je:
=RemoveChars(A2, $D$2)
Da bi formula radila ispravno, obratite pozornost na sljedeće stvari:
- U D2 , znakovi su navedeni bez razmaka, osim ako ne želite eliminirati i razmake.
- Adresa ćelije koja sadrži posebne znakove zaključana je znakom $ ($D$2) kako bi se spriječilo mijenjanje reference prilikom kopiranja formulu u donje ćelije.
A zatim jednostavno povučemo formulu prema dolje i brišemo sve znakove navedene u D2 iz ćelija A2 do A6:
Da biste očistili više ćelija jednom formulom, navedite raspon A2:A6 za 1. argument:
=RemoveChars(A2:A6, D2)
Budući da se formula unosi samo u gornju ćeliju, ne morate brinuti o zaključavanju koordinata ćelije - relativna referenca (D2) u ovom slučaju dobro funkcionira. 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 iz više ćelija, možete stvoritidrugi LAMBDA koji poziva glavnu funkciju RemoveChars i navodi nepoželjne znakove u 2. parametru. Na primjer:
Za brisanje posebnih znakova , stvorili smo prilagođenu funkciju pod nazivom RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Za uklonite brojeve iz tekstualnih nizova, stvorili smo još jednu funkciju pod nazivom RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Obje gore navedene funkcije su super jednostavne koristiti jer im je potreban samo jedan argument - izvorni niz.
Za uklanjanje posebnih znakova iz A2, formula je:
=RemoveSpecialChars(A2)
Za brisanje samo numeričkih znakova:
=RemoveNumbers(A2)
Kako ova funkcija radi:
U biti, funkcija RemoveChars prolazi kroz popis znakova i uklanja jedan po jedan znak. Prije svakog rekurzivnog poziva funkcija IF provjerava preostale znakove. Ako niz chars nije prazan (chars""), funkcija poziva samu sebe. Čim se zadnji znak obradi, formula vraća niz u svoj sadašnji oblik i izlazi.
Za detaljnu raščlambu formule pogledajte Rekurzivna LAMBDA za uklanjanje neželjenih znakova.
Uklonite posebne znakove pomoću VBA
Funkcije rade u svim verzijama Excela
Ako funkcija LAMBDA nije dostupna u vašem Excelu, ništa vas ne sprječava od stvaranja slične funkcije s VBA. Korisnički definiranfunkcija (UDF) može se napisati na dva načina.
Prilagođena funkcija za brisanje posebnih znakova rekurzivno :
Ovaj kod emulira logiku funkcije LAMBDA o kojoj se govori gore.
Funkcija RemoveUnwantedChars(str As String, chars As String) If ( "" chars) Then str = Replace(str, Left(chars, 1), "") chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End FunctionPrilagođena funkcija za uklanjanje posebnih znakova nerekurzivno :
Ovdje kružimo kroz neželjene znakove od 1 do Len(chars) i zamijeniti one pronađene u izvornom nizu ničim. Funkcija MID izvlači neželjene znakove jedan po jedan i prosljeđuje ih funkciji Replace.
Funkcija RemoveUnwantedChars(str As String, chars As String) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Sljedeći RemoveUnwantedChars = str Kraj funkcijeUmetnite jedan od gornjih kodova u svoju radnu knjigu kao što je objašnjeno u Kako umetnuti VBA kod u Excel, i vaša je prilagođena funkcija spremna za upotrebu.
Da ne bismo brkali našu novu korisnički definiranu funkciju s Lambda definiranom, nazvali smo je drugačije:
RemoveUnwantedChars(string, chars)Pod pretpostavkom da je izvorni niz u A2, a nepoželjni znakovi u D2, možemo ih se riješiti pomoću ove formule:
= RemoveUnwantedChars(A2, $D$2)
Prilagođena funkcija s tvrdo kodiranimznakova
Ako se ne želite zamarati unosom posebnih znakova za svaku formulu, možete ih odrediti izravno u kodu:
Funkcija RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Dugi znakovi = "?¿!¡*%#$(){}[]^&/\~+-" Za indeks = 1 Do Len(znakovi) str = Zamijeni(str, Sredina(znakovi, indeks, 1) , "" ) Sljedeći RemoveSpecialChars = str End FunctionImajte na umu da je gornji kod u svrhu demonstracije. Za praktičnu upotrebu, uključite sve znakove koje želite izbrisati u sljedeći redak:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Ova prilagođena funkcija zove se RemoveSpecialChars i zahtijeva samo jedan argument - izvorni niz:
RemoveSpecialChars(string)Za uklanjanje posebnih znakova iz našeg skupa podataka, formula je:
=RemoveSpecialChars(A2)
Uklonite znakove koji se ne mogu ispisati u programu Excel
Microsoft Excel ima posebnu funkciju za brisanje znakova koji se ne mogu ispisati - funkciju CLEAN. Tehnički, uklanja prva 32 znaka u 7-bitnom ASCII skupu (kodovi od 0 do 31).
Na primjer, za brisanje znakova koji se ne mogu ispisati iz A2, evo formule za korištenje :
=CLEAN(A2)
Ovo će eliminirati neispisne znakove, ali će razmaci prije/poslije teksta i između riječi ostati.
Za riješite se dodatnih razmaka , omotajte CLEAN formulu u funkciju TRIM:
=TRIM(CLEAN(A2))
Sada, svi vodeći irazmaci na kraju se uklanjaju, dok su razmaci između reducirani na jedan razmak:
Ako želite izbrisati apsolutno sve razmake unutar niz, a zatim dodatno zamijenite razmak (kod broj 32) praznim nizom:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Neki razmaci ili drugi nevidljivi znakovi još uvijek ostaju u tvoj radni list? To znači da ti znakovi imaju različite vrijednosti u Unicode skupu znakova.
Na primjer, kod znaka neraskidivog razmaka ( ) je 160 i možete ga očistiti pomoću ove formule:
=SUBSTITUTE(A2, CHAR(160)," ")
Da biste izbrisali određeni neispisni znak , prvo morate pronaći njegovu vrijednost koda. Detaljne upute i primjeri formula nalaze se ovdje: Kako ukloniti određeni znak koji se ne ispisuje.
Brisanje posebnih znakova pomoću Ultimate Suite
Podržava Excel za Microsoft 365, Excel 2019 - 2010
U ovom posljednjem primjeru pokazat ću vam 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 Ukloni > Ukloni znakove .
Za trenutak ćete dobiti savršen rezultat:
Ako nešto pođe po zlu, ne brinite - sigurnosna kopija vašeg radnog lista automatski će se stvoriti jer je okvir Sigurnosno kopiraj ovaj radni list odabran prema zadanim postavkama.
Želite li isprobati naš alat za uklanjanje? Poveznica na probnu verziju nalazi se ispod. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!
Dostupna preuzimanja
Brisanje posebnih znakova - primjeri (.xlsm datoteka)
Ultimate Suite - probna verzija verzija (.exe datoteka)