Efnisyfirlit
Í þessari grein muntu læra hvernig á að eyða ákveðnum stöfum úr textastreng og fjarlægja óæskilega stafi úr mörgum hólfum í einu.
Þegar gögn eru flutt inn í Excel annars staðar frá, fullt af sérstöfum gæti ferðast á vinnublöðin þín. Það sem er enn pirrandi er að sumir stafir eru ósýnilegir, sem framleiðir auka hvítt rými fyrir, eftir eða innan textastrengja. Þessi kennsla veitir lausnir á öllum þessum vandamálum, sparar þér vandræðin við að þurfa að fara í gegnum gögnin reit fyrir reit og hreinsa óæskilega stafi með höndunum.
Fjarlægja sérstaf úr Excel reit
Til að eyða tilteknum staf úr reit skaltu skipta honum út fyrir tóman streng með því að nota SUBSTITUTE fallið í sinni einföldustu mynd:
SUBSTITUTE( reitur, char, "")Til dæmis, til að eyða spurningarmerki úr A2, er formúlan í B2:
=SUBSTITUTE(A2, "?", "")
Til að fjarlægja staf sem er ekki til staðar á lyklaborðinu þínu geturðu afritað/límt það í formúluna úr upprunalega hólfinu.
Til dæmis, hér er hvernig þú getur losað þig við öfugt spurningarmerki:
=SUBSTITUTE(A2, "¿", "")
En ef óæskilegur karakter er ósýnilegur eða afritar ekki rétt, hvernig seturðu það í formúluna? Finndu einfaldlega kóðanúmerið með því að nota CODE aðgerðina.
Í okkar tilviki kemur óæskilegi stafurinn ("¿") síðastur í reit A2, þannig að við erum að nota samsetninguaf CODE og RIGHT aðgerðunum til að sækja einstakt kóðagildi þess, sem er 191:
=CODE(RIGHT(A2))
Þegar þú hefur fengið kóða stafsins skaltu þjóna samsvarandi CHAR virka við almennu formúluna hér að ofan. Fyrir gagnasafnið okkar er formúlan sem hér segir:
=SUBSTITUTE(A2, CHAR(191),"")
Athugið. SUBSTITUTE aðgerðin er hástafanæm , sem þýðir að hún meðhöndlar lágstafi og hástafi sem mismunandi stafi. Vinsamlegast hafðu það í huga ef óæskileg persóna þín er bókstafur.
Eyða mörgum stöfum úr streng
Í einni af fyrri greinum skoðuðum við hvernig á að fjarlægja tiltekna stafi úr strengjum í Excel með því að hreiðra nokkrar SUBSTITUTE aðgerðir inn í aðra. Hægt er að nota sömu aðferð til að útrýma tveimur eða fleiri óæskilegum stöfum í einu:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Til dæmis, til að uppræta venjuleg upphrópunar- og spurningarmerki sem og þau öfug úr textastreng í A2, notaðu þessa formúlu:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Það sama er hægt að gera með hjálp CHAR fallsins, þar sem 161 er stafakóði fyrir "¡" og 191 er stafakóði fyrir "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Nested SUBSTITUTE aðgerðir virka fínt fyrir hæfilegan fjölda stafa, en ef þú átt heilmikið af stöfum til að fjarlægja verður formúlan of löng og erfitt að stjórna henni. Næsta dæmi sýnir afyrirferðarmeiri og glæsilegri lausn.
Fjarlægðu alla óæskilega stafi í einu
Lausnin virkar aðeins í Excel fyrir Microsoft 365
Eins og þú veist líklega, Excel 365 hefur sérstaka aðgerð sem gerir þér kleift að búa til þínar eigin aðgerðir, þar á meðal þær sem reikna endurkvæmt. Þessi nýja aðgerð heitir LAMBDA og þú getur fundið allar upplýsingar um hana í kennsluefninu hér að ofan. Hér að neðan mun ég útskýra hugmyndina með nokkrum hagnýtum dæmum.
Sérsniðin LAMBDA aðgerð til að fjarlægja óæskilega stafi er sem hér segir:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Til að geta notað þessa aðgerð í vinnublöðunum þínum þarftu að nefna hana fyrst. Fyrir þetta, ýttu á Ctrl + F3 til að opna Nafnastjóri og skilgreindu síðan Nýtt nafn á þennan hátt:
- Í Nafni , sláðu inn heiti fallsins: RemoveChars .
- Stilltu umfangið á Workbook .
- Í Refers to reitinn, límdu formúluna hér að ofan.
- Sláðu valfrjálst inn lýsingu á breytunum í Comment reitinn. Færibreyturnar munu birtast þegar þú slærð inn formúlu í reit.
- Smelltu á OK til að vista nýja aðgerðina.
Fyrir nákvæmar leiðbeiningar, vinsamlegast sjáðu Hvernig á að nefna sérsniðna LAMBDA fall.
Þegar fallið hefur fengið nafn geturðu vísað til þess eins og hvaða innfæddri formúlu sem er.
Frá sjónarhóli notandans , setningafræði sérsniðnu aðgerðarinnar okkar er eins einföld ogþetta:
RemoveChars(streng, chars)Hvar:
- String - er upprunalegi strengurinn, eða tilvísun í reitinn/sviðið sem inniheldur strenginn( s).
- Stafur - stafir til að eyða. Hægt að tákna með textastreng eða reittilvísun.
Til þæginda setjum við inn óæskilega stafi í sumum hólf, td D2. Til að fjarlægja þessa stafi úr A2 er formúlan:
=RemoveChars(A2, $D$2)
Til að formúlan virki rétt skaltu taka eftir eftirfarandi hlutum:
- Í D2 , stafir eru skráðir án bils, nema þú viljir líka útrýma bilum.
- Veffang reitsins sem inniheldur sérstafina er læst með $ tákninu ($D$2) til að koma í veg fyrir að tilvísunin breytist þegar tekist er á við formúlu yfir í frumurnar hér að neðan.
Og svo drögum við formúluna einfaldlega niður og látum eyða öllum stöfunum sem eru skráðir í D2 úr hólfum A2 til A6:
Til að þrífa margar frumur með einni formúlu, gefðu upp bilið A2:A6 fyrir 1. rök:
=RemoveChars(A2:A6, D2)
Þar sem formúlan er aðeins færð inn í efsta reitinn, þú þarft ekki að hafa áhyggjur af því að læsa hnitum reitanna - hlutfallsleg tilvísun (D2) virkar fínt í þessu tilfelli. Og vegna stuðnings við kraftmikla fylki, lekur formúlan sjálfkrafa inn í allar tilvísanir í hólf:
Fjarlægir fyrirframskilgreint stafasett
Til að eyða fyrirframskilgreindu setti af stafi úr mörgum frumum, þú getur búið tilönnur LAMBDA sem kallar á aðal RemoveChars aðgerðina og tilgreinir óæskilega stafi í 2. færibreytunni. Til dæmis:
Til að eyða sérstöfum höfum við búið til sérsniðna aðgerð sem heitir RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To fjarlægðu tölur úr textastrengjum, við höfum búið til eina aðgerð í viðbót sem heitir RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Báðar ofangreindar aðgerðir eru mjög auðveldar til að nota þar sem þeir þurfa aðeins eina röksemdafærslu - upprunalega strenginn.
Til að eyða sérstöfum úr A2 er formúlan:
=RemoveSpecialChars(A2)
Til að eyða aðeins tölum:
=RemoveNumbers(A2)
Hvernig þessi aðgerð virkar:
Í meginatriðum fer aðgerðin RemoveChars í gegnum listann yfir stafir og fjarlægir einn staf í einu. Fyrir hvert endurtekið símtal athugar IF-aðgerðin þær stafir sem eftir eru. Ef stafir strengurinn er ekki tómur (stafir") kallar aðgerðin sig. Um leið og síðasta stafurinn hefur verið unnin skilar formúlan streng í núverandi mynd og hættir.
Til að fá nákvæma formúluskiptingu, vinsamlegast skoðaðu endurkvæma LAMBDA til að fjarlægja óæskilega stafi.
Fjarlægja sérstafi með VBA
Hugsurnar virka í öllum útgáfum af Excel
Ef LAMBDA aðgerðin er ekki tiltæk í Excel, kemur ekkert í veg fyrir frá því að búa til svipaða aðgerð með VBA. Notendaskilgreintfall (UDF) er hægt að skrifa á tvo vegu.
Sérsniðið fall til að eyða sérstöfum endurkvæmt :
Þessi kóði líkir eftir rökfræði LAMBDA fallsins sem fjallað er um hér að ofan.
Aðgerð 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 AðgerðSérsniðin aðgerð til að fjarlægja sérstafi ekki endurkvæmir :
Hér er farið í gegnum óæskilega stafi frá 1 til Len(chars) og skiptu út þeim sem finnast í upprunalega strengnum fyrir ekkert. MID aðgerðin dregur óæskilega stafi einn af öðrum og sendir þá í Replace aðgerðina.
Aðgerð RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End FunctionSettu inn einn af ofangreindum kóða í vinnubókina þína eins og útskýrt er í Hvernig á að setja inn VBA kóða í Excel, og sérsniðna aðgerðin þín er tilbúin til notkunar.
Til að rugla ekki saman nýju notendaskilgreindu aðgerðinni okkar við Lambda-skilgreinda aðgerðina, við höfum nefnt hana á annan hátt:
RemoveUnwantedChars(streng, chars)Að því gefnu að upprunalegi strengurinn sé í A2 og óvelkomnir stafir í D2, við getum losað okkur við þá með því að nota þessa formúlu:
= RemoveUnwantedChars(A2, $D$2)
Sérsniðin aðgerð með harðkóðaðristafir
Ef þú vilt ekki nenna að gefa upp sérstafi fyrir hverja formúlu geturðu tilgreint þá beint í kóðanum:
Aðgerð RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Langar stafir = "?¿!¡*%#$(){}[]^&/\~+-" Fyrir vísitölu = 1 Til Len(stafir) str = Replace(str, Mid(chars, index, 1) , "" ) Next RemoveSpecialChars = str LokaaðgerðVinsamlegast hafðu í huga að ofangreindur kóði er til sýnis. Til hagnýtrar notkunar, vertu viss um að hafa alla stafi sem þú vilt eyða í eftirfarandi línu:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Þessi sérsniðna aðgerð heitir RemoveSpecialChars og það þarf aðeins einn rök - upprunalegi strengurinn:
RemoveSpecialChars(streng)Til að fjarlægja sérstafi úr gagnasafninu okkar er formúlan:
=RemoveSpecialChars(A2)
Fjarlægja stafi sem ekki er hægt að prenta í Excel
Microsoft Excel hefur sérstaka aðgerð til að eyða stöfum sem ekki eru prentaðir - CLEAN aðgerðin. Tæknilega séð fjarlægir það fyrstu 32 stafina í 7 bita ASCII settinu (kóðar 0 til 31).
Til dæmis, til að eyða óprentanlegum stöfum úr A2, hér er formúlan til að nota :
=CLEAN(A2)
Þetta mun útiloka stafi sem ekki eru prentaðir, en bil fyrir/eftir texta og á milli orða verða áfram.
Til að losaðu þig við aukabil , settu CLEAN formúluna inn í TRIM fallið:
=TRIM(CLEAN(A2))
Nú, allt fremst ogá eftir bilum eru fjarlægðar, á meðan bil á milli eru minnkað í einn bilstaf:
Ef þú vilt eyða algerlega öllum bilum inni í strengur, setjið síðan bilstafinn (kóðanúmer 32) í staðinn fyrir tóman streng:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Sum bil eða aðrir ósýnilegir stafir eru enn eftir í vinnublaðið þitt? Það þýðir að þessir stafir hafa mismunandi gildi í Unicode stafasettinu.
Til dæmis er stafakóði óbrjótandi bils ( ) 160 og þú getur hreinsað það með þessari formúlu:
=SUBSTITUTE(A2, CHAR(160)," ")
Til að eyða tilteknum staf sem ekki er prentað þarftu fyrst að finna kóðagildi hans. Ítarlegar leiðbeiningar og formúludæmi eru hér: Hvernig á að fjarlægja tiltekinn staf sem ekki er prentaður.
Eyða sértáknum með Ultimate Suite
Styður Excel fyrir Microsoft 365, Excel 2019 - 2010
Í þessu síðasta dæmi, leyfðu mér að sýna þér auðveldustu leiðina til að fjarlægja sérstafi í Excel. Þegar Ultimate Suite er uppsett er þetta það sem þú þarft að gera:
- Á Ablebits Data flipanum, í Texti hópnum, smelltu á Fjarlægja > Fjarlægja stafi .
Eftir augnablik færðu fullkomna niðurstöðu:
Ef eitthvað fer úrskeiðis, ekki hafa áhyggjur - öryggisafrit af vinnublaðinu þínu verður sjálfkrafa búið til þar sem Afrita þetta vinnublað kassi er sjálfgefið valinn.
Ertu forvitinn að prófa fjarlægja tólið okkar? Tengill á matsútgáfuna er rétt fyrir neðan. Ég þakka þér fyrir lesturinn og vonast til að sjá þig á blogginu okkar í næstu viku!
Laust niðurhal
Eyða sértáknum - dæmum (.xlsm skrá)
Ultimate Suite - prufa útgáfa (.exe skrá)