Efnisyfirlit
Í síðustu tveimur greinum höfum við skoðað mismunandi leiðir til að fjarlægja stafi úr strengjum í Excel. Í dag munum við rannsaka enn eitt notkunartilvikið - hvernig á að eyða öllu fyrir eða á eftir tilteknum staf.
Eyða texta fyrir, á eftir eða á milli tveggja stafa með Finndu & Skipta út
Fyrir gagnavinnslu í mörgum frumum er Finna og skipta út rétta tólið. Til að fjarlægja hluta af streng sem kemur á undan eða á eftir tilteknum staf eru þessi skref sem þarf að framkvæma:
- Veldu alla reiti þar sem þú vilt eyða texta.
- Ýttu á Ctrl + H til að opna Finndu og skipta út glugganum.
- Í reitnum Finndu hvað skaltu slá inn eina af eftirfarandi samsetningum:
- Til að eyða texta á undan tilteknum staf , sláðu inn stafinn á undan stjörnu (*char).
- Til að fjarlægja texta eftir ákveðnum staf skaltu slá inn stafinn og síðan stjörnu (char) *).
- Til að eyða undirstreng á milli tveggja stafa , sláðu inn stjörnu umkringd 2 stöfum (char*char).
- Leyfðu Skiptu út með reitinn tóman.
- Smelltu á Skiptu alla .
Til dæmis til að fjarlægja allt eftir kommu þar á meðal kommu sjálfa, settu kommu og stjörnumerki (,*) í Finndu hvað reitinn og þú færð eftirfarandi niðurstöðu:
Til að eyða undirstreng á undan kommu skaltu slá inn stjörnu, kommu,allt á eftir 1. kommu í A2 er formúlan í B2:
=RemoveText(A3, ", ", 1, TRUE)
Til að eyða öllu á undan 1. kommu í A2 er formúlan í C2:
=RemoveText(A3, ", ", 1, FALSE)
Þar sem sérsniðin aðgerð okkar samþykkir streng fyrir afmörkun , setjum við kommu og bil (", ") í 2. rifrildi til að spara vandræði við að klippa fremstu bil á eftir.
Sérsniðna aðgerðin okkar virkar fallega, er það ekki? En ef þú heldur að þetta sé alhliða lausnin hefurðu ekki séð næsta dæmi ennþá :)
Eyða öllu fyrir, eftir eða á milli stafa
Til að fá enn fleiri möguleika til að fjarlægja einstaka stafi eða texta úr mörgum hólfum, eftir samsvörun eða staðsetningu, bættu Ultimate Suite okkar við Excel verkfærakistuna þína.
Hér munum við skoða nánar Fjarlægja eftir staðsetningu eiginleikanum sem er staðsettur á Ablebits Data flipinn > Texti hópur > Fjarlægja .
Hér að neðan munum við fjalla um þetta tvennt algengustu aðstæður.
Fjarlægðu allt fyrir eða eftir ákveðinn texta
Segjum að allir upprunastrengirnir þínir innihaldi eitthvað algengt orð eða texta og þú vilt eyða öllu fyrir eða á eftir þeim texta. Til að gera það skaltu velja upprunagögnin þín, keyra Fjarlægja eftir staðsetningu tólinu og stilla það eins og sýnt er hér að neðan:
- Veldu Allir stafir á undan texta eða Allir stafir á eftir texta og sláðu inn lykiltextann (eða stafinn) í reitinn næstvið það.
- Það fer eftir því hvort meðhöndla eigi hástafi og lágstafi sem ólíka eða sömu stafi skaltu haka við eða taka hakið úr Lásta og hástöfum reitnum.
- Smelltu á Fjarlægja .
Í þessu dæmi erum við að fjarlægja alla stafi á undan orðinu "villa" í hólfum A2:A8:
Og fáðu nákvæmlega niðurstöðuna sem við erum að leita að:
Fjarlægja texta á milli tveggja stafa
Í aðstæðum þar sem óviðkomandi upplýsingar eru á milli tveggja tiltekinna stafa, hér er hvernig þú getur fljótt eytt því:
- Veldu Fjarlægja alla undirstrengi og sláðu inn tvo stafi í reitina fyrir neðan.
- Ef „milli“ stafina ætti að fjarlægja líka , hakaðu við Includes delimiters reitinn.
- Smelltu á Fjarlægja .
Sem sem dæmi, við eyðum öllu á milli tveggja tilde-stafa (~) og fáum fullkomlega hreinsaða strengi í kjölfarið:
Til að prófa aðra gagnlega eiginleika sem fylgja þessum fjölvirka tól, ég hvet þig til að hlaða niður e verðmatsútgáfa í lok þessarar færslu. Þakka þér fyrir að lesa og vonumst til að sjá þig á blogginu okkar í næstu viku!
Lagt niðurhal
Fjarlægðu fyrstu eða síðustu stafina - dæmi (.xlsm skrá)
Ultimate Suite - prufuútgáfa (.exe skrá)
og bil (*, ) í reitnum Finndu hvað.Vinsamlegast athugið að við erum að skipta út ekki bara kommu heldur kommu og bili til að koma í veg fyrir að leiði pláss í niðurstöðunum. Ef gögnin þín eru aðskilin með kommum án bils, notaðu þá stjörnu og síðan kommu (*,).
Til að eyða texta á milli tveggja kommu , notaðu stjörnu umkringda kommum (,*,).
Ábending. Ef þú vilt frekar að nöfn og símanúmer séu aðskilin með kommu skaltu slá inn kommu (,) í Skipta út fyrir reitinn.
Fjarlægja hluta af texta með því að nota Flash Fill
Í nútímaútgáfum af Excel (2013 og síðar) er enn ein auðveld leið til að eyða texta sem kemur á undan eða á eftir tilteknum staf - Flash Fill eiginleikinn. Svona virkar það:
- Í reit við hliðina á fyrsta reitnum með gögnunum þínum, sláðu inn væntanleg niðurstöðu og ýttu á Enter .
- Byrjaðu að slá inn viðeigandi gildi í næsta reit. Þegar Excel finnur fyrir mynstrinu í gildunum sem þú ert að slá inn mun það birta forskoðun fyrir þær frumur sem eftir eru eftir sama mynstri.
- Ýttu á Enter takkann til að samþykkja tillöguna.
Lokið!
Fjarlægja texta með formúlum
Í Microsoft Excel er einnig hægt að framkvæma margar gagnasmíði sem gerðar eru með því að nota innbyggða eiginleika með formúlu. Ólíkt fyrri aðferðum, gera formúlur engar breytingar á upprunalegu gögnunum og gefa þér meiri stjórn ániðurstöðurnar.
Hvernig á að fjarlægja allt eftir ákveðna staf
Til að eyða texta á eftir tilteknum staf er almenna formúlan:
LEFT( reitur , SEARCH (" char ", cell ) -1)Hér notum við SEARCH aðgerðina til að fá stöðu stafsins og senda hana í VINSTRI aðgerðina, svo hún dregur út samsvarandi fjölda stafa frá upphafi strengsins. Einn stafur er dreginn frá tölunni sem SEARCH skilar til að útiloka afmörkunina frá niðurstöðunum.
Til dæmis, til að fjarlægja hluta af streng á eftir kommu, slærðu inn formúluna hér að neðan í B2 og dregur hana niður í gegnum B7 :
=LEFT(A2, SEARCH(",", A2) -1)
Hvernig á að fjarlægja allt á undan tilteknum staf
Til að eyða hluta af textastreng á undan ákveðnum staf, almenn formúla er:
RIGHT( frumur , LEN( frumur ) - SEARCH(" char ", cell ))Hér reiknum við aftur út staðsetningu markstafsins með hjálp SEARCH, dregum hana frá heildarlengd strengsins sem LEN skilar og sendum mismuninn yfir í RIGHT fallið, þannig að það dregur marga stafi frá enda strengur.
Til dæmis, til að fjarlægja texta á undan kommu er formúlan:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2))
Í okkar tilviki er kommu fylgt eftir með bilstaf. Til að forðast fremstu bil í niðurstöðunum setjum við kjarnaformúluna inn í TRIM fallið:
=TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))
Athugasemdir:
- Bæðiaf ofangreindum dæmum gera ráð fyrir að það sé aðeins eitt tilvik af afmörkunarmerkinu í upprunalega strengnum. Ef það eru mörg tilvik verður texti fjarlægður fyrir/eftir fyrsta tilviki .
- SEARCH aðgerðin er ekki hástafaviðkvæm , sem þýðir að hún gerir engan mun á milli lágstafir og hástafir. Ef sérstakur stafurinn þinn er bókstafur og þú vilt aðgreina hástafi, notaðu þá hástafanæmu FIND aðgerðina í stað SEARCH.
Hvernig á að eyða texta eftir Nth tilvik af staf
Í þeim tilfellum þegar upprunastrengur inniheldur mörg tilvik af afmörkunarmerkinu gætirðu þurft að fjarlægja texta eftir tiltekið tilvik. Notaðu eftirfarandi formúlu:
VINSTRI( hólf , FINN("#", SUBSTITUTE( hólf , " staf ", "#" , n )) -1)Þar sem n er viðburður stafsins sem á að fjarlægja texta eftir.
Innri rökfræði þessarar formúlu krefst þess að nota einhvern staf sem er hvergi til staðar í upprunagögnunum, kjötkássamerki (#) í okkar tilviki. Ef þessi stafur kemur fyrir í gagnasettinu þínu, notaðu þá eitthvað annað í staðinn fyrir "#".
Til dæmis, til að fjarlægja allt á eftir 2. kommu í A2 (og kommu sjálfri), er formúlan:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Hvernig þessi formúla virkar:
Lykilhluti formúlunnar er FIND fallið sem reiknar út staða nafmörkun (komma í okkar tilfelli). Svona er þetta:
Við skiptum út 2. kommu í A2 fyrir kjötkássatákn (eða annan staf sem er ekki til í gögnunum þínum) með hjálp STAMMAÐAR:
SUBSTITUTE(A2, ",", "#", 2)
Strengur sem myndast fer í 2. frumbreytu FIND, þannig að hann finnur stöðu "#" í þeim streng:
FIND("#", "Emma, Design# (102) 123-4568")
FIND segir okkur að "#" sé 13. stafurinn í strenginn. Til að vita fjölda stafa á undan því skaltu bara draga 1 frá, og þú munt fá 12 sem afleiðing:
FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1
Þessi tala fer beint í tal_stafir rökin af VINSTRI og biður hana um að draga fyrstu 12 stafina úr A2:
=LEFT(A2, 12)
Það er það!
Hvernig á að eyða texta áður en n. stafur kemur fyrir
Almenna formúlan til að fjarlægja undirstreng á undan ákveðnum staf er:
RIGHT(SUBSTITUTE( cell , " char ", "#", n ), LEN( klefi ) - FIND("#", SUBSTITUTE( klefi , " char ", "#", n )) -1)Til dæmis, til að fjarlægja texta á undan 2. kommu í A2 er formúlan:
=RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Til að útrýma fremstu bili notum við aftur TRIM virka sem umbúðir:
=TRIM(RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))))
Hvernig þessi formúla virkar:
Í samantekt komumst við að því hversu margir stafir eru á eftir n. afmörkun og draga út undirstreng af samsvarandi lengd frá hægri. Hér að neðan er formúlan sundurliðuð:
Í fyrsta lagi skiptum við út 2. kommu í A2 fyrir kjötkássatákn:
SUBSTITUTE(A2, ",", "#", 2)
Strenginn sem myndast fer í texta rökin RIGHT:
RIGHT("Emma, Design# (102) 123-4568", …
Næst þurfum við að skilgreina hversu marga stafi á að draga úr enda strengsins. Fyrir þetta finnum við staðsetningu kjötkássa táknsins í strengnum hér að ofan (sem er 13):
FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Og draga það frá heildarlengd strengsins (sem er 28):
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Mismunurinn (15) fer í seinni röksemdafærslu RIGHT sem gefur fyrirmæli um að draga síðustu 15 stafina úr strengnum í fyrstu rifrildinu:
RIGHT("Emma, Design# (102) 123-4568", 15)
Úttakið er undirstrengur " (102) 123-4568", sem er mjög nálægt æskilegri niðurstöðu, nema fremstu bili. Þannig að við notum TRIM fallið til að losna við það.
Hvernig á að fjarlægja texta eftir síðasta tilvik stafs
Ef gildin þín eru aðskilin með breytilegum fjölda afmarka, þú gæti viljað fjarlægja allt eftir síðasta tilvik þess afmörkunar. Þetta er hægt að gera með eftirfarandi formúlu:
VINSTRI( hólf , FINN("#", SUBSTITUTE( hólf , " char ", "# ", LEN( klefi ) - LEN(SUBSTITUTE( klefi , " char ", "")))) -1)Segjum sem dálk A inniheldur ýmsar upplýsingar um starfsmenn en gildið á eftir síðustu kommu er alltaf símanúmer. Markmið þitt er að fjarlægja símanúmer og geyma allar aðrar upplýsingar.
Til að ná markmiðinu geturðu fjarlægt texta á eftir síðustu kommu í A2 með þessuformúla:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)
Afritaðu formúluna niður í dálkinn og þú munt fá þessa niðurstöðu:
Hvernig þetta formúla virkar:
Kjarni formúlunnar er að við ákveðum staðsetningu síðasta afmarka (kommu) í strengnum og togum undirstreng frá vinstri upp að afmörkuninni. Það er erfiðasti hlutinn að fá stöðu afmörkunarmarksins og hér er hvernig við höndlum það:
Fyrst komumst við að því hversu margar kommur eru í upprunalega strengnum. Fyrir þetta skiptum við hverri kommu út fyrir ekkert ("") og sendum strenginn sem myndast í LEN fallið:
LEN(SUBSTITUTE(A2, ",",""))
Fyrir A2 er niðurstaðan 35, sem er fjöldi stafa í A2 án kommu.
Dregið ofangreinda tölu frá heildarlengd strengsins (38 stafir):
LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))
… og þú færð 3, sem er heildartalan af kommu í A2 (og einnig raðtölu síðustu kommu).
Næst notar þú samsetninguna sem þegar er kunnugleg af FIND og SUBSTITUTE aðgerðunum til að fá staðsetningu síðustu kommu í strengnum. Tilviksnúmerið (3. komma í okkar tilfelli) er gefið með ofangreindri LEN SUBSTITUTE formúlu:
FIND("#", SUBSTITUTE(A2, ",", "#", 3))
Það virðist sem 3. komman sé 23. stafurinn í A2, sem þýðir að við þurfum til að draga út 22 stafi á undan því. Þannig að við setjum ofangreinda formúlu mínus 1 í tal_stafir rökin fyrir VINSTRI:
LEFT(A2, 23-1)
Hvernig á að fjarlægja texta fyrir síðasta tilvik stafs
Til að eyðaallt fyrir síðasta tilvik tiltekins tákns, almenna formúlan er:
RIGHT( cell , LEN( cell ) - FIND("#", SUBSTITUTE( klefi , " char ", "#", LEN( cell ) - LEN(SUBSTITUTE( cell , " char ", "")))))Í sýnistöflunni okkar, til að eyða texta á undan síðustu kommu, tekur formúlan þessa mynd:
=RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))))
Sem lokaatriði, við hreiður það inn í TRIM aðgerðina til að útrýma fremstu bilum:
=TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))
Hvernig þessi formúla virkar:
Í stuttu máli fáum við staðsetningu síðustu kommu eins og útskýrt var í fyrra dæmi og drögum hana frá heildarlengd strengsins:
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))
Sem afleiðing fáum við fjölda stafi á eftir síðustu kommu og sendu það í RIGHT fallið, þannig að það færir svona marga stafi frá enda strengsins.
Sérsniðið fall til að fjarlægja texta hvoru megin við staf
Sem þú hefur séð í dæmunum hér að ofan geturðu leyst nánast hvaða notkunartilvik sem er með því að nota innfædda f Excel samsetningar í mismunandi samsetningum. Vandamálið er að þú þarft að muna eftir handfylli af erfiðum formúlum. Hmm, hvað ef við skrifum okkar eigin fall til að ná yfir allar aðstæður? Hljómar eins og góð hugmynd. Svo skaltu bæta eftirfarandi VBA kóða við vinnubókina þína (ítarleg skref til að setja VBA inn í Excel eru hér):
Aðgerð RemoveText(str As String , afmarka As String , occurrence As Integer , is_after AsBoolean ) Dim delimiter_num, start_num, delimiter_len As Heiltala Dim str_result As String delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(delimiter) Fyrir i = 1 Til að koma fyrir delimiter_num = InStr(start_num, str, 0Compare, vbTex) < delimiter_num Þá start_num = delimiter_num + delimiter_len End If Next i If 0 < delimiter_num Then If True = is_after Then str_result = Mid(str, 1, start_num - delimiter_len - 1) Else str_result = Mid(str, start_num) End If End If RemoveText = str_result LokafallOkkar fall heitir FjarlægjaText og það hefur eftirfarandi setningafræði:
RemoveText(streng, afmörkun, tilvik, er_after)Hvar:
Strengur - er upprunalegi textastrengurinn. Hægt að tákna með frumutilvísun.
Afmörkun - stafurinn á undan/eftir sem á að fjarlægja texta.
Tilvik - tilvik afmörkun.
Is_after - Boolean gildi sem gefur til kynna hvoru megin afmarka á að fjarlægja texta. Getur verið einn stafur eða röð stafa.
- TRUE - eyddu öllu á eftir afmörkunarmerkinu (þar á meðal afmörkunarmerkinu sjálfu).
- FALSE - eyða öllu á undan afmörkunarmerkinu (þar á meðal sjálft afmörkun).
Þegar kóði fallsins hefur verið settur inn í vinnubókina þína geturðu fjarlægt undirstrengi úr hólfum með því að nota þéttar og glæsilegar formúlur.
Til dæmis til að eyða