Kako izbrisati posebne / neželene znake v programu Excel

  • Deliti To
Michael Brown

V tem članku boste izvedeli, kako izbrisati določene znake iz besedilnega niza in odstraniti neželene znake iz več celic hkrati.

Pri uvozu podatkov v Excel od drugod lahko v vaše delovne liste potuje veliko posebnih znakov. Še bolj neprijetno je, da so nekateri znaki nevidni, zaradi česar se pred, za ali znotraj besedilnih nizov pojavi dodaten bel prostor. To vodilo ponuja rešitve za vse te težave, pri čemer vam prihrani pregledovanje podatkov po celicah in čiščenje neželenihznakov z roko.

    Odstranite poseben znak iz celice programa Excel

    Če želite iz celice izbrisati določen znak, ga nadomestite s praznim nizom z uporabo funkcije SUBSTITUTE v njeni najpreprostejši obliki:

    SUBSTITUTE( celica , char , "")

    Če želite na primer iz A2 izbrisati vprašalni znak, je formula v B2 naslednja:

    =SUBSTITUTE(A2, "?", "")

    Če želite odstraniti znak, ki ga na tipkovnici ni, ga lahko kopirate/prilepite v formulo iz prvotne celice.

    Na primer, tukaj je opisano, kako se lahko znebite obrnjenega vprašalnega znaka:

    =SUBSTITUTE(A2, "¿", "")

    Če pa je nezaželen znak nevidno ali pa se ne kopira pravilno, kako ga lahko vnesete v formulo? Preprosto poiščite njegovo šifro z uporabo funkcije CODE.

    V našem primeru je neželeni znak ("¿") zadnji v celici A2, zato uporabimo kombinacijo funkcij CODE in RIGHT, da pridobimo njegovo edinstveno vrednost kode, ki je 191:

    =KOD(DESNO(A2))

    Ko dobite kodo znaka, zgornji splošni formuli dodajte ustrezno funkcijo CHAR. Za naš nabor podatkov je formula naslednja:

    =SUBSTITUTE(A2, CHAR(191),"")

    Opomba: Funkcija SUBSTITUTE je , ki upošteva velike in male črke. , kar pomeni, da male in velike črke obravnava kot različne znake. To upoštevajte, če je neželeni znak črka.

    Brisanje več znakov iz niza

    V enem od prejšnjih člankov smo si ogledali, kako iz nizov v Excelu odstraniti določene znake z vgnezditvijo več funkcij SUBSTITUTE eno v drugo. Enak pristop lahko uporabite za odstranitev dveh ali več neželenih znakov naenkrat:

    SUBSTITUT(SUBSTITUT(SUBSTITUT( celica , char1 , ""), char2 , ""), char3 , "")

    Če želite na primer iz besedilnega niza v A2 izbrisati običajne vzklikalnike in vprašalnike ter obrnjene vzklikalnike, uporabite to formulo:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")

    Enako lahko storite s pomočjo funkcije CHAR, pri čemer je 161 oznaka znaka za "¡", 191 pa oznaka znaka za "¿":

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

    Vgnezdene funkcije SUBSTITUTE se dobro obnesejo pri razumnem številu znakov, če pa je treba odstraniti več deset znakov, postane formula predolga in težko obvladljiva. Naslednji primer prikazuje bolj kompaktno in elegantno rešitev.

    Odstranite vse neželene znake naenkrat

    Rešitev deluje samo v programu Excel za Microsoft 365

    Kot verjetno veste, ima Excel 365 posebno funkcijo, ki omogoča ustvarjanje lastnih funkcij, vključno s tistimi, ki računajo rekurzivno. Ta nova funkcija se imenuje LAMBDA, vse podrobnosti o njej pa najdete v zgoraj povezanem učbeniku. V nadaljevanju bom koncept ponazoril z nekaj praktičnimi primeri.

    Funkcija LAMBDA po meri za odstranite neželene znake je naslednji:

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string)))

    Če želite to funkcijo uporabljati v delovnih listih, jo morate najprej poimenovati. V ta namen pritisnite kombinacijo tipk Ctrl + F3, da odprete Ime Manager in nato definira a Novo ime na ta način:

    1. V Ime vnesite ime funkcije: RemoveChars .
    2. Območje nastavite na Delovni zvezek .
    3. V Nanaša se na prilepite zgornjo formulo.
    4. Po želji vnesite opis parametrov v polje Komentarji Parametri se prikažejo, ko v celico vnesete formulo.
    5. Kliknite . V REDU da shranite novo funkcijo.

    Za podrobna navodila glejte Kako poimenovati funkcijo LAMBDA po meri.

    Ko funkcija dobi ime, se lahko nanjo sklicujete kot na katero koli drugo izvirno formulo.

    Z vidika uporabnika je sintaksa naše funkcije po meri preprosta:

    RemoveChars(niz, znaki)

    Kje:

    • Niz - je izvirni niz ali sklic na celico/območje, ki vsebuje niz(e).
    • Chars - Znaki, ki jih želite izbrisati. Predstavlja jih lahko besedilni niz ali referenca na celico.

    Zaradi priročnosti vnesemo neželene znake v neko celico, na primer D2. Za odstranitev teh znakov iz A2 je formula naslednja:

    =Odstranjevanje znakov(A2, $D$2)

    Za pravilno delovanje formule upoštevajte naslednje stvari:

    • V D2 so znaki navedeni brez presledkov, razen če želite odpraviti tudi presledke.
    • Naslov celice, ki vsebuje posebne znake, je zaklenjen z znakom $ ($D$2), da se referenca ne spremeni pri kopiranju formule v spodnje celice.

    Nato preprosto povlečemo formulo navzdol in iz celic od A2 do A6 izbrišemo vse znake, navedene v D2:

    Če želite očistiti več celic z eno samo formulo, za 1. argument navedite območje A2:A6:

    =RemoveChars(A2:A6, D2)

    Ker je formula vnesena le v najvišjo celico, vam ni treba skrbeti za zaklepanje celičnih koordinat - v tem primeru je ustrezen relativni sklic (D2). Zaradi podpore dinamičnim nizom se formula samodejno razširi v vse celice, na katere se sklicuje:

    Odstranitev vnaprej določenega nabora znakov

    Če želite izbrisati vnaprej določen nabor znakov iz več celic, lahko ustvarite še en program LAMBDA, ki kliče glavni program RemoveChars in v 2. parametru navedite neželene znake. Na primer:

    Brisanje posebni znaki smo ustvarili funkcijo po meri z imenom RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    Na naslov odstranite številke iz besedilnih nizov, smo ustvarili še eno funkcijo z imenom RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    Obe funkciji je zelo enostavno uporabljati, saj zahtevata le en argument - izvirni niz.

    Za odpravo posebni znaki iz A2 je formula:

    =Odstrani posebne znake (A2)

    Brisanje samo številski znaki:

    =Odstranjevanje številk(A2)

    Kako deluje ta funkcija:

    V bistvu je RemoveChars funkcija se vrti skozi seznam znaki in odstrani en znak naenkrat. Pred vsakim rekurzivnim klicem funkcija IF preveri preostale znake. znaki ni prazen (znaki""), se funkcija pokliče sama. Takoj ko je obdelan zadnji znak, formula vrne niz sedanjo obliko in izhode.

    Za podroben opis formule glejte Recursive LAMBDA to remove unwanted characters.

    Odstranjevanje posebnih znakov z VBA

    Funkcije delujejo v vseh različicah programa Excel

    Če funkcija LAMBDA v Excelu ni na voljo, vam nič ne preprečuje, da bi podobno funkcijo ustvarili z VBA. Uporabniško opredeljeno funkcijo (UDF) lahko napišete na dva načina.

    Funkcija po meri za brisanje posebnih znakov rekurzivni :

    Ta koda posnema logiko zgoraj obravnavane funkcije LAMBDA.

    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 Function

    Funkcija po meri za odstranjevanje posebnih znakov nepovratno :

    V tem primeru prebiramo neželene znake od 1 do Len(chars) in tiste, ki jih najdemo v prvotnem nizu, zamenjamo z ničemer. Funkcija MID enega za drugim izloči neželene znake in jih posreduje funkciji Zamenjaj.

    Funkcija RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End Function

    V delovni zvezek vstavite eno od zgornjih kod, kot je razloženo v poglavju Kako vstaviti kodo VBA v Excel, in funkcija po meri je pripravljena za uporabo.

    Da naše nove uporabniško definirane funkcije ne bi zamenjali s funkcijo Lambda, smo jo poimenovali drugače:

    RemoveUnwantedChars(string, chars)

    Ob predpostavki, da je izvirni niz v A2, nezaželeni znaki pa v D2, se jih lahko znebimo s to formulo:

    = RemoveUnwantedChars(A2, $D$2)

    Funkcija po meri s trdno kodiranimi znaki

    Če se ne želite ukvarjati z zagotavljanjem posebnih znakov za vsako formulo, jih lahko določite neposredno v kodi:

    Funkcija RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveSpecialChars = str End Function

    Upoštevajte, da je zgornja koda namenjena prikazu. Za praktično uporabo v naslednji vrstici vključite vse znake, ki jih želite izbrisati:

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    Ta funkcija po meri se imenuje RemoveSpecialChars in zahteva le en argument - izvirni niz:

    RemoveSpecialChars(niz)

    Za odstranitev posebnih znakov iz našega nabora podatkov je formula naslednja:

    =Odstranitev posebnih znakov (A2)

    Odstranjevanje znakov, ki jih ni mogoče natisniti, v Excelu

    Microsoft Excel ima posebno funkcijo za brisanje netiskanih znakov - funkcijo CLEAN. Tehnično gledano odstrani prvih 32 znakov iz 7-bitnega nabora ASCII (kode od 0 do 31).

    Če želite na primer izbrisati netiskljivi znaki iz A2, tukaj je formula, ki jo je treba uporabiti:

    =CLEAN(A2)

    Pri tem se odstranijo netiskani znaki, vendar ostanejo presledki pred/za besedilom in med besedami.

    Da bi se znebili dodatni prostori , zavijte formulo CLEAN v funkcijo TRIM:

    =TRIM(CLEAN(A2))

    Zdaj so odstranjeni vsi začetni in končni presledki, presledki med njimi pa so zmanjšani na en sam presledek:

    Če želite popolnoma izbrisati vsi prostori znotraj niza, potem dodatno nadomestite znak presledka (kodna številka 32) s praznim nizom:

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    V delovnem listu še vedno ostajajo nekateri presledki ali drugi nevidni znaki? To pomeni, da imajo ti znaki različne vrednosti v naboru znakov Unicode.

    Na primer, znakovna koda prostor brez preloma ( ) je 160 in ga lahko očistite s to formulo:

    =SUBSTITUTE(A2, CHAR(160)," ")

    Brisanje poseben netiskarski znak , morate najprej poiskati njegovo kodno vrednost. Podrobna navodila in primeri formul so na voljo tukaj: Kako odstraniti določen netiskarski znak.

    Brisanje posebnih znakov z Ultimate Suite

    Podpira Excel za Microsoft 365, Excel 2019 - 2010

    V tem zadnjem primeru vam bom pokazal najlažji način odstranjevanja posebnih znakov v programu Excel. Z nameščenim paketom Ultimate Suite morate storiti tole:

    1. Na Podatkovni zapisi o napravah Ablebits v zavihku Besedilo skupino, kliknite Odstranite > Odstranjevanje znakov .

  • V podoknu dodatka izberite izvorno območje, izberite Odstranjevanje naborov znakov in s spustnega seznama izberite želeno možnost ( Simboli & ločila v tem primeru).
  • Pritisnite na Odstranite gumb.
  • V trenutku boste dobili popoln rezultat:

    Če gre kaj narobe, ne skrbite - varnostna kopija delovnega lista bo ustvarjena samodejno, ko bo Varnostna kopija tega delovnega lista je privzeto izbrano.

    Ste radovedni, da preizkusite naše orodje Odstrani? Povezava do preizkusne različice je spodaj. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Razpoložljivi prenosi

    Brisanje posebnih znakov - primeri (.xlsm datoteka)

    Ultimate Suite - preizkusna različica (.exe datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.