Turinys
Šiame straipsnyje sužinosite, kaip ištrinti konkrečius simbolius iš teksto eilutės ir pašalinti nepageidaujamus simbolius iš kelių langelių vienu metu.
Importuojant duomenis į "Excel" iš kitur, į jūsų darbalapius gali patekti daugybė specialiųjų simbolių. Dar labiau vargina tai, kad kai kurie simboliai yra nematomi, todėl prieš teksto eilutes, po jų arba jų viduje susidaro papildomos baltosios vietos. Šioje pamokoje pateikiami visų šių problemų sprendimai, todėl jums nereikės tikrinti duomenų po langelius ir valyti nepageidaujamų simbolių.simbolius ranka.
Pašalinti specialųjį simbolį iš "Excel" ląstelės
Norėdami ištrinti tam tikrą simbolį iš ląstelės, pakeiskite jį tuščia eilute naudodami paprasčiausią funkciją SUBSTITUTE:
SUBSTITUTE( ląstelė , simbolis , "")Pavyzdžiui, norint ištrinti klausiamąjį ženklą iš A2, B2 formulė yra tokia:
=SUBSTITUTE(A2, "?", "")
Jei norite pašalinti klaviatūroje nesantį simbolį, galite jį nukopijuoti / įklijuoti į formulę iš pradinės ląstelės.
Pavyzdžiui, štai kaip atsikratyti apversto klausimo ženklo:
=SUBSTITUTE(A2, "¿", "")
Tačiau jei nepageidaujamas simbolis yra nematomas arba neteisingai kopijuojamas, kaip jį įrašyti į formulę? Paprasčiausiai suraskite jo kodo numerį naudodami funkciją CODE.
Mūsų atveju nepageidaujamas simbolis ("¿") A2 ląstelėje yra paskutinis, todėl jo unikaliai kodo vertei, kuri yra 191, išgauti naudojame funkcijų CODE ir RIGHT derinį:
=KODAS(DEŠINĖ(A2))
Gavę simbolio kodą, pirmiau pateiktoje bendroje formulėje nurodykite atitinkamą CHAR funkciją. Mūsų duomenų rinkinio atveju formulė yra tokia:
=SUBSTITUTE(A2, CHAR(191),"")
Pastaba. Funkcija SUBSTITUTE yra , kai atsižvelgiama į mažąsias ir didžiąsias raides. , t. y. mažąsias ir didžiąsias raides laiko skirtingais ženklais. Turėkite tai omenyje, jei nepageidaujamas simbolis yra raidė.
Ištrinti kelis simbolius iš eilutės
Viename iš ankstesnių straipsnių apžvelgėme, kaip iš "Excel" eilučių pašalinti tam tikrus simbolius, įterpiant kelias SUBSTITUTE funkcijas vieną į kitą. Tą patį metodą galima taikyti norint vienu kartu pašalinti du ar daugiau nepageidaujamų simbolių:
PAKAITALAS(PAKAITALAS(PAKAITALAS( ląstelė , char1 , ""), char2 , ""), char3 , "")Pavyzdžiui, norėdami iš A2 teksto eilutės ištrinti įprastus šauktuko ir klausimo ženklus bei apverstus šauktuko ir klausimo ženklus, naudokite šią formulę:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", ""), "¿", "")
Tą patį galima padaryti naudojant funkciją CHAR, kur 161 yra simbolio "¡" kodas, o 191 - simbolio "¿" kodas:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), ""), CHAR(191), "")
Įterptinės SUBSTITUTE funkcijos veikia gerai, jei yra pakankamas simbolių skaičius, tačiau jei reikia pašalinti dešimtis simbolių, formulė tampa per ilga ir sunkiai valdoma. Kitame pavyzdyje pateiktas kompaktiškesnis ir elegantiškesnis sprendimas.
Pašalinkite visus nepageidaujamus simbolius iš karto
Sprendimas veikia tik "Excel" programoje "Microsoft 365
Kaip tikriausiai žinote, "Excel 365" turi specialią funkciją, kuri leidžia kurti savo funkcijas, įskaitant rekursyviai skaičiuojančias funkcijas. Ši nauja funkcija pavadinta LAMBDA, o išsamią informaciją apie ją rasite pirmiau pateiktoje pamokoje. Toliau šią koncepciją iliustruosiu keliais praktiniais pavyzdžiais.
Pasirinktinė LAMBDA funkcija, skirta pašalinti nepageidaujamus simbolius yra toks:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string)))
Kad galėtumėte naudoti šią funkciją darbalapiuose, pirmiausia turite ją pavadinti. Tam paspauskite Ctrl + F3, kad atidarytumėte Vardas ir pavardė Vadybininkas , o tada apibrėžti a Naujas pavadinimas taip:
- Į Pavadinimas įveskite funkcijos pavadinimą: RemoveChars .
- Nustatykite sritį į Darbo knyga .
- Į Nurodo langelyje įklijuokite pirmiau pateiktą formulę.
- Pasirinktinai parametrų aprašymą įveskite į Komentarai lange. Parametrai bus rodomi, kai ląstelėje įvesite formulę.
- Spustelėkite GERAI išsaugoti naująją funkciją.
Išsamias instrukcijas rasite skyriuje Kaip pavadinti pasirinktinę LAMBDA funkciją.
Kai funkcijai suteikiamas pavadinimas, į ją galima kreiptis kaip į bet kurią kitą gimtąją formulę.
Vartotojo požiūriu, mūsų pasirinktinės funkcijos sintaksė yra tokia paprasta:
RemoveChars(string, chars)Kur:
- Stygos - yra pradinė eilutė arba nuoroda į ląstelę ar sritį, kurioje yra eilutė (-ės).
- Ženklai - gali būti teksto eilutė arba ląstelės nuoroda.
Patogumo dėlei į tam tikrą ląstelę, tarkime, D2, įvedame nepageidaujamus simbolius. Norint pašalinti šiuos simbolius iš A2, formulė yra tokia:
=Pašalinti žymes(A2, $D$2)
Kad formulė veiktų teisingai, atkreipkite dėmesį į šiuos dalykus:
- D2 ženkluose ženklai pateikiami be tarpų, nebent norite pašalinti ir tarpus.
- Ląstelės, kurioje yra specialiųjų simbolių, adresas užrakinamas ženklu $ ($D$2), kad kopijuojant formulę į toliau esančias ląsteles nuoroda nepasikeistų.
Tada tiesiog vilkdami formulę žemyn ištrinsime visus D2 ląstelėse nuo A2 iki A6 išvardytus simbolius:
Norėdami išvalyti kelis langelius viena formule, kaip 1 argumentą nurodykite A2:A6 intervalą:
=Panaikinti žymes(A2:A6, D2)
Kadangi formulė įvedama tik į viršutinę ląstelę, nereikia rūpintis ląstelės koordinačių fiksavimu - šiuo atveju tinka santykinė nuoroda (D2). Dėl dinaminių masyvų palaikymo formulė automatiškai išsiplečia į visas ląstelės, į kurias pateikiama nuoroda:
Iš anksto nustatyto simbolių rinkinio pašalinimas
Norėdami ištrinti iš anksto nustatytą simbolių rinkinį iš kelių langelių, galite sukurti kitą LAMBDA, kuris iškviečia pagrindinį RemoveChars funkciją ir 2-ajame parametre nurodykite nepageidaujamus simbolius. Pvz:
Ištrinti specialieji ženklai sukūrėme pasirinktinę funkciją, pavadintą RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Į pašalinti numerius iš teksto eilučių, sukūrėme dar vieną funkciją, pavadintą RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Abi pirmiau minėtas funkcijas labai paprasta naudoti, nes joms reikia tik vieno argumento - pradinės eilutės.
Pašalinti specialieji ženklai iš A2, formulė yra tokia:
=Pašalinti specialiuosius ženklus(A2)
Jei norite ištrinti tik skaitmeniniai simboliai:
=Pašalinti skaičius(A2)
Kaip veikia ši funkcija:
Iš esmės RemoveChars funkcija perbraukia per sąrašą ženklai ir pašalina po vieną simbolį. Prieš kiekvieną rekursinį iškvietimą funkcija IF patikrina likusius simbolius. ženklai eilutė nėra tuščia (simboliai""), funkcija iškviečia pati save. Kai tik apdorojamas paskutinis simbolis, formulė grąžina eilutė jo dabartinę formą ir išeina.
Išsamią formulės išklotinę rasite skyriuje Rekursinė LAMBDA nepageidaujamiems ženklams pašalinti.
Specialiųjų simbolių pašalinimas naudojant VBA
Funkcijos veikia visose "Excel" versijose
Jei "Excel" programoje nėra funkcijos LAMBDA, niekas netrukdo sukurti panašią funkciją naudojant VBA. Naudotojo apibrėžtą funkciją (UDF) galima parašyti dviem būdais.
Pasirinktinė specialiųjų simbolių šalinimo funkcija rekursinis :
Šis kodas imituoja pirmiau aptartą LAMBDA funkcijos logiką.
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 FunctionPasirinktinė funkcija specialiesiems ženklams pašalinti negrįžtamasis :
Čia cikliškai peržiūrime nepageidaujamus simbolius nuo 1 iki Len(chars) ir originalioje eilutėje rastus simbolius pakeičiame niekuo. Funkcija MID po vieną ištraukia nepageidaujamus simbolius ir perduoda juos funkcijai Replace.
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Į darbaknygę įterpkite vieną iš pirmiau nurodytų kodų, kaip paaiškinta skyrelyje Kaip įterpti VBA kodą "Excel", ir pasirinktinė funkcija bus paruošta naudoti.
Kad nesupainiotume savo naujos vartotojo apibrėžtos funkcijos su "Lambda" apibrėžta funkcija, pavadinome ją kitaip:
RemoveUnwantwantedChars(string, chars)Darant prielaidą, kad pradinė eilutė yra A2, o nepageidaujami simboliai - D2, jų galime atsikratyti naudodami šią formulę:
= RemoveUnwantedChars(A2, $D$2)
Pasirinktinė funkcija su užkoduotais simboliais
Jei nenorite rūpintis specialiųjų ženklų pateikimu kiekvienai formulei, galite juos nurodyti tiesiogiai kode:
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 FunctionNepamirškite, kad pirmiau pateiktas kodas yra demonstracinio pobūdžio. Norėdami jį naudoti praktiškai, būtinai įtraukite visus simbolius, kuriuos norite ištrinti, į šią eilutę:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Ši pasirinktinė funkcija pavadinta RemoveSpecialChars ir jam reikia tik vieno argumento - pradinės eilutės:
RemoveSpecialChars(string)Norint iš duomenų rinkinio pašalinti specialius simbolius, formulė yra tokia:
=Panaikinti specialiuosius ženklus(A2)
Nespausdinamų simbolių pašalinimas programoje "Excel
"Microsoft Excel" turi specialią nespausdinamų simbolių šalinimo funkciją - funkciją CLEAN. Techniškai ji pašalina pirmuosius 32 7 bitų ASCII rinkinio simbolius (kodai nuo 0 iki 31).
Pavyzdžiui, norėdami ištrinti nespausdinami simboliai iš A2, štai formulė, kurią reikia naudoti:
=CLEAN(A2)
Taip bus pašalinti nespausdinami simboliai, tačiau tarpai prieš ir po teksto bei tarp žodžių išliks.
Atsikratyti papildomi tarpai , į TRIM funkciją įtraukite formulę CLEAN:
=TRIM(CLEAN(A2))
Dabar pašalinami visi pradiniai ir galiniai tarpai, o tarp jų esantys tarpai sumažinami iki vieno tarpo ženklo:
Jei norite visiškai ištrinti visos erdvės eilutėje, tada papildomai pakeiskite tarpo simbolį (kodas 32) tuščia eilute:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Jūsų darbalapyje vis dar lieka tarpų ar kitų nematomų simbolių? Tai reiškia, kad tų simbolių reikšmės "Unicode" simbolių rinkinyje skiriasi.
Pavyzdžiui, simbolio kodas nelūžtantis tarpas ( ) yra 160, todėl jį galima išvalyti pagal šią formulę:
=SUBSTITUTE(A2, CHAR(160)," ")
Jei norite ištrinti specifinis nespausdinamasis simbolis , pirmiausia reikia rasti jo kodo reikšmę. Išsamias instrukcijas ir formulių pavyzdžius rasite čia: Kaip pašalinti konkretų nespausdinamą simbolį.
Specialiųjų simbolių ištrynimas naudojant "Ultimate Suite
Palaiko "Excel", skirtą "Microsoft 365", "Excel 2019 - 2010
Šiame paskutiniame pavyzdyje parodysiu jums paprasčiausią būdą, kaip "Excel" programoje pašalinti specialiuosius simbolius. Įdiegus "Ultimate Suite", reikia padaryti štai ką:
- Dėl Ablebitų duomenys skirtuke Tekstas grupę, spustelėkite Pašalinti > Pašalinti simbolius .
Po akimirkos gausite puikų rezultatą:
Jei kas nors nepavyks, nesijaudinkite - atsarginė darbalapio kopija bus sukurta automatiškai, nes Atsarginė šio lapo kopija langelis pasirinktas pagal numatytuosius nustatymus.
Smalsu išbandyti mūsų Pašalinimo įrankį? Nuoroda į bandomąją versiją pateikta žemiau. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Galimi atsisiuntimai
Specialiųjų simbolių ištrynimas - pavyzdžiai (.xlsm failas)
"Ultimate Suite" - bandomoji versija (.exe failas)