Tabela e përmbajtjes
Në këtë artikull, do të mësoni se si të fshini karaktere specifike nga një varg teksti dhe të hiqni karakteret e padëshiruara nga disa qeliza në të njëjtën kohë.
Kur importoni të dhëna në Excel nga diku tjetër, shumë karaktere të veçanta mund të udhëtojnë në fletët tuaja të punës. Ajo që është edhe më zhgënjyese është se disa karaktere janë të padukshme, gjë që krijon hapësirë shtesë të bardhë para, pas ose brenda vargjeve të tekstit. Ky udhëzues ofron zgjidhje për të gjitha këto probleme, duke ju kursyer vështirësinë për të kaluar nëpër të dhënat qelizë për qelizë dhe për të pastruar karakteret e padëshiruara me dorë.
Hiqni karakterin special nga qeliza Excel
Për të fshirë një karakter specifik nga një qelizë, zëvendësojeni atë me një varg bosh duke përdorur funksionin SUBSTITUTE në formën e tij më të thjeshtë:
SUBSTITUTE( qeliza, char, "")Për shembull, për të zhdukur një pikëpyetje nga A2, formula në B2 është:
=SUBSTITUTE(A2, "?", "")
Për të hequr një karakter që nuk është i pranishëm në tastierën tuaj, mund ta kopjoni/ngjitni në formulë nga qeliza origjinale.
Për shembull, ja se si mund të hiqni qafe një pikëpyetje të përmbysur:
=SUBSTITUTE(A2, "¿", "")
Por nëse një karakter i padëshiruar është i padukshëm ose nuk kopjon saktë, si ta vendosni në formulë? Thjesht, gjeni numrin e kodit të tij duke përdorur funksionin CODE.
Në rastin tonë, karakteri i padëshiruar ("¿") vjen i fundit në qelizën A2, kështu që ne po përdorim një kombinime funksioneve CODE dhe RIGHT për të marrë vlerën e tij unike të kodit, e cila është 191:
=CODE(RIGHT(A2))
Pasi të merrni kodin e karakterit, shërbejeni CHAR-in përkatës funksionojnë sipas formulës gjenerike të mësipërme. Për grupin tonë të të dhënave, formula shkon si më poshtë:
=SUBSTITUTE(A2, CHAR(191),"")
Shënim. Funksioni SUBSTITUTE është i ndjeshëm ndaj shkronjave , që do të thotë se i trajton shkronjat e vogla dhe të mëdha si karaktere të ndryshme. Ju lutemi mbani në mend këtë nëse karakteri juaj i padëshiruar është një shkronjë.
Fshi shumë karaktere nga vargu
Në një nga artikujt e mëparshëm, ne shikuam se si të hiqni karaktere specifike nga vargjet në Excel duke futur disa funksione SUBSTITUTE njëri në tjetrin. E njëjta qasje mund të përdoret për të eliminuar dy ose më shumë karaktere të padëshiruar në të njëjtën kohë:
Për shembull, për të zhdukur pasthirrmat dhe pikëpyetjet normale, si dhe ato të përmbysura nga një varg teksti në A2, përdorni këtë formulë:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
E njëjta gjë mund të bëhet me ndihmën e funksionit CHAR, ku 161 është kodi i karakterit për "¡" dhe 191 është kodi i karakterit për "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Funksionet e Nested SUBSTITUTE funksionojnë mirë për një numër të arsyeshëm karakteresh, por nëse keni dhjetëra karaktere për të hequr, formula bëhet shumë e gjatë dhe e vështirë për t'u menaxhuar. Shembulli vijues demonstron azgjidhje më kompakte dhe elegante.
Hiqni të gjithë karakteret e padëshiruar menjëherë
Zgjidhja funksionon vetëm në Excel për Microsoft 365
Siç e dini ndoshta, Excel 365 ka një funksion të veçantë që ju mundëson të krijoni funksionet tuaja, duke përfshirë ato që llogariten në mënyrë rekursive. Ky funksion i ri quhet LAMBDA dhe mund të gjeni detaje të plota rreth tij në tutorialin e mësipërm. Më poshtë, unë do ta ilustroj konceptin me disa shembuj praktikë.
Një funksion i personalizuar LAMBDA për heqjen e karaktereve të padëshiruara është si më poshtë:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Për të qenë në gjendje ta përdorni këtë funksion në fletët tuaja të punës, së pari duhet ta emërtoni atë. Për këtë, shtypni Ctrl + F3 për të hapur Name Manager , dhe më pas përcaktoni një Emër të ri në këtë mënyrë:
- Në Emri kutia , shkruani emrin e funksionit: RemoveChars .
- Vendosni fushëveprimin në Libri i punës .
- Në I referohet kutia, ngjisni formulën e mësipërme.
- Me dëshirë, vendosni përshkrimin e parametrave në kutinë Komente . Parametrat do të shfaqen kur shkruani një formulë në një qelizë.
- Klikoni OK për të ruajtur funksionin tuaj të ri.
Për udhëzimet e hollësishme, ju lutemi shihni Si të emërtoni një funksion të personalizuar LAMBDA.
Pasi funksioni të marrë një emër, mund t'i referoheni atij si çdo formulë origjinale.
Nga këndvështrimi i përdoruesit , sintaksa e funksionit tonë të personalizuar është aq e thjeshtë sakjo:
RemoveChars(string, chars)Ku:
- String - është vargu origjinal, ose një referencë për qelizën/rangun që përmban vargun( s).
- Shenjat - karaktere që duhen fshirë. Mund të përfaqësohet nga një varg teksti ose një referencë qelize.
Për lehtësi, ne futim karaktere të padëshiruara në disa qeliza, le të themi D2. Për të hequr ato karaktere nga A2, formula është:
=RemoveChars(A2, $D$2)
Që formula të funksionojë si duhet, ju lutemi vini re gjërat e mëposhtme:
- Në D2 , karakteret renditen pa hapësira, përveç nëse dëshironi të eliminoni edhe hapësirat.
- Adresa e qelizës që përmban karakteret speciale është e kyçur me shenjën $ ($D$2) për të parandaluar ndryshimin e referencës kur përballoni formula në qelizat e mëposhtme.
Dhe më pas, ne thjesht e tërheqim formulën poshtë dhe fshijmë të gjithë karakteret e listuara në D2 nga qelizat A2 deri në A6:
Për të pastruar shumë qeliza me një formulë të vetme, jepni diapazonin A2:A6 për argumentin e parë:
=RemoveChars(A2:A6, D2)
Meqenëse formula futet vetëm në qelizën më të lartë, nuk duhet të shqetësoheni për bllokimin e koordinatave të qelizave - një referencë relative (D2) funksionon mirë në këtë rast. Dhe për shkak të mbështetjes për grupet dinamike, formula derdhet automatikisht në të gjitha qelizat e referuara:
Heqja e një grupi të paracaktuar karakteresh
Për të fshirë një grup të paracaktuar të karaktere nga qeliza të shumta, ju mund të krijoninjë tjetër LAMBDA që thërret funksionin kryesor RemoveChars dhe specifikon karakteret e padëshirueshme në parametrin e dytë. Për shembull:
Për të fshirë karakteret speciale , ne kemi krijuar një funksion të personalizuar të quajtur RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Për fshini numrat nga vargjet e tekstit, ne kemi krijuar një funksion tjetër të quajtur RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Të dy funksionet e mësipërme janë shumë të lehta për t'u përdorur pasi kërkojnë vetëm një argument - vargun origjinal.
Për të eliminuar karakteret speciale nga A2, formula është:
=RemoveSpecialChars(A2)
Për të fshirë vetëm karakteret numerike:
=RemoveNumbers(A2)
Si funksionon ky funksion:
Në thelb, funksioni RemoveChars kalon nëpër listën e kartonave dhe heq një karakter në të njëjtën kohë. Përpara çdo thirrjeje rekursive, funksioni IF kontrollon karakteret e mbetura. Nëse vargu chars nuk është bosh (charts""), funksioni thërret veten. Sapo karakteri i fundit të jetë përpunuar, formula i kthen string formën e tij aktuale dhe del.
Për zbërthimin e detajuar të formulës, ju lutemi shihni LAMBDA Rekursive për të hequr karakteret e padëshiruara.
Hiqni karaktere speciale me VBA
Funksionet funksionojnë në të gjitha versionet e Excel
Nëse funksioni LAMBDA nuk është i disponueshëm në Excel, asgjë nuk ju pengon nga krijimi i një funksioni të ngjashëm me VBA. Një i përcaktuar nga përdoruesifunksioni (UDF) mund të shkruhet në dy mënyra.
Funksioni i personalizuar për të fshirë karaktere speciale rekurzive :
Ky kod imiton logjikën e funksionit LAMBDA të diskutuar më sipër.
Funksioni RemoveUnwantedChars(str Si varg , karaktere si varg ) Nëse ( "" karaktere) Pastaj str = Replace(str, Left(charts, 1), "" ) chars = Right(charts, Len(charts) - 1) RemoveUnwanted Chars = RemoveUnwantedChars(str, chars) Përndryshe RemoveUnwantedChars = str Fund If End FunksioniFunksioni i personalizuar për të hequr karaktere speciale jo rekurzive :
Këtu, ne kalojmë nëpër karaktere të padëshiruar nga 1 në Len(chars) dhe zëvendësoni ato që gjenden në vargun origjinal me asgjë. Funksioni MID tërheq karakteret e padëshiruara një nga një dhe ia kalon ato te funksioni Replace.
Funksioni RemoveUnwantedChars(str Si varg , karakteret si varg ) Për indeksin = 1 Tek Len(shkronjat) str = Replace(str, Mid(shkronjat, index, 1), "" ) Tjetra RemoveUnwantedChars = str Funksioni i FunditFutni një nga kodet e mësipërme në librin tuaj të punës siç shpjegohet në Si të futni kodin VBA në Excel dhe funksioni juaj i personalizuar është gati për përdorim.
Për të mos ngatërruar funksionin tonë të ri të përcaktuar nga përdoruesi me atë të përcaktuar nga Lambda, ne e kemi emërtuar ndryshe:
RemoveUnwantedChars(varg, karaktere)Duke supozuar se vargu origjinal është në A2 dhe karaktere të padëshiruara në D2, ne mund t'i heqim ato duke përdorur këtë formulë:
= RemoveUnwantedChars(A2, $D$2)
Funksioni i personalizuar me kod të fortëkaraktere
Nëse nuk doni të shqetësoheni për furnizimin me karaktere speciale për secilën formulë, mund t'i specifikoni drejtpërdrejt në kodin:
Funksioni RemoveSpecialChars(str As String ) Si varg Dim chars As String Dim index As Karaktere të gjata = "?¿!¡*%#$(){}[]^&/\~+-" Për indeksin = 1 Në Len(karaktera) str = Zëvendëso(rr, Mesi(karaktera, indeksi, 1) , "" ) Next RemoveSpecialChars = str Funksioni FundJu lutemi mbani parasysh se kodi i mësipërm është për qëllime demonstrimi. Për përdorim praktik, sigurohuni që të përfshini të gjitha karakteret që dëshironi të fshini në rreshtin vijues:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Ky funksion i personalizuar quhet RemoveSpecialChars dhe kërkon vetëm një argumenti - vargu origjinal:
RemoveSpecialChars(string)Për të hequr karaktere speciale nga grupi ynë i të dhënave, formula është:
=RemoveSpecialChars(A2)
Hiqni karakteret që nuk printohen në Excel
Microsoft Excel ka një funksion të veçantë për fshirjen e karaktereve joprintuese - funksionin CLEAN. Teknikisht, ai heq 32 karakteret e para në grupin 7-bit ASCII (kodet 0 deri në 31).
Për shembull, për të fshirë karakteret e pashtypshme nga A2, këtu është formula që duhet përdorur :
=CLEAN(A2)
Kjo do të eliminojë karakteret që nuk shtypen, por hapësirat para/pas tekstit dhe ndërmjet fjalëve do të mbeten.
Për hiqni qafe hapësirat shtesë , mbështillni formulën CLEAN në funksionin TRIM:
=TRIM(CLEAN(A2))
Tani, të gjitha kryesore dhehapësirat pasuese hiqen, ndërsa hapësirat ndërmjet reduktohen në një karakter të vetëm hapësinor:
Nëse dëshironi të fshini absolutisht të gjitha hapësirat brenda një varg, pastaj zëvendësoni karakterin e hapësirës (kodi numër 32) me një varg bosh:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Disa hapësira ose karaktere të tjera të padukshme mbeten ende në fletën tuaj të punës? Kjo do të thotë se ato karaktere kanë vlera të ndryshme në grupin e karaktereve Unicode.
Për shembull, kodi i karaktereve të një hapësirë që nuk prishet ( ) është 160 dhe mund ta pastroni duke përdorur këtë formulë:
=SUBSTITUTE(A2, CHAR(160)," ")
Për të fshirë një karakter specifik jo-printues , së pari duhet të gjesh vlerën e kodit të tij. Udhëzimet e detajuara dhe shembujt e formulës janë këtu: Si të hiqni një karakter specifik që nuk printohet.
Fshi karakteret speciale me Ultimate Suite
Mbështeton Excel për Microsoft 365, Excel 2019 - 2010
Në këtë shembull të fundit, më lejoni t'ju tregoj mënyrën më të lehtë për të hequr karaktere speciale në Excel. Me të instaluar Ultimate Suite, kjo është ajo që duhet të bëni:
- Në skedën Ablebits Data , në grupin Text , klikoni Hiq > Hiq karakteret .
Në një moment, do të merrni një rezultat perfekt:
Nëse diçka nuk shkon mirë, mos u shqetësoni - një kopje rezervë e fletës suaj të punës do të krijohet automatikisht pasi kutia Rezervoni këtë fletë pune është zgjedhur si parazgjedhje.
Jeni kurioz të provoni mjetin tonë "Hiq"? Një lidhje me versionin e vlerësimit është më poshtë. Ju falënderoj që lexoni dhe shpresoj t'ju shohim në blogun tonë javën e ardhshme!
Shkarkimet e disponueshme
Fshi karaktere speciale - shembuj (skedari .xlsm)
Ultimate Suite - provë versioni (skedari .exe)