Hiqni tekstin para, pas ose midis dy karaktereve në Excel

  • Shperndaje Kete
Michael Brown

Në dy artikujt e fundit, ne kemi parë mënyra të ndryshme për të hequr karakteret nga vargjet në Excel. Sot, ne do të hetojmë një rast tjetër përdorimi - si të fshijmë gjithçka përpara ose pas një karakteri specifik.

    Fshi tekstin para, pas ose midis 2 karaktereve me Find & Replace

    Për manipulimet e të dhënave në qeliza të shumta, Find and Replace është mjeti i duhur. Për të hequr një pjesë të një vargu që i paraprin ose pason një karakter specifik, këto janë hapat për të kryer:

    1. Zgjidhni të gjitha qelizat ku dëshironi të fshini tekstin.
    2. Shtypni Ctrl + H për të hapur dialogun Gjej dhe Zëvendëso .
    3. Në kutinë Gjej çfarë , fut një nga kombinimet e mëposhtme:
      • Për të eliminuar tekstin përpara një karakteri të caktuar , shkruani karakterin e paraprirë nga një yll (*char).
      • Për të hequr tekstin pas një karakteri të caktuar , shkruani karakterin e ndjekur nga një yll (char *).
      • Për të fshirë një nënvarg midis dy karaktereve , shkruani një yll të rrethuar me 2 karaktere (char*char).
    4. Lëreni Zëvendëso me kutinë bosh.
    5. Kliko Zëvendëso të gjitha .

    Për shembull, për të hequr çdo gjë pas presjes duke përfshirë edhe vetë presjen, vendosni një presje dhe një shenjë ylli (,*) në ​​kutinë Gjeni atë dhe do të merrni rezultatin e mëposhtëm:

    Për të fshirë një nënvarg përpara presjes , shkruani një yll, një presje,çdo gjë pas presjes së parë në A2, formula në B2 është:

    =RemoveText(A3, ", ", 1, TRUE)

    Për të fshirë gjithçka përpara presjes së parë në A2, formula në C2 është:

    =RemoveText(A3, ", ", 1, FALSE)

    Meqenëse funksioni ynë i personalizuar pranon një varg për ndarësin , vendosim presje dhe një hapësirë ​​(", ") në argumentin e dytë për të kursyer mundimin e shkurtimit të hapësirave kryesore më pas.

    Funksioni ynë i personalizuar funksionon bukur, apo jo? Por nëse mendoni se është zgjidhja gjithëpërfshirëse, nuk e keni parë ende shembullin tjetër :)

    Fshi gjithçka përpara, pas ose midis karaktereve

    Për të marrë edhe më shumë opsione për heqjen e karaktereve individuale ose tekst nga disa qeliza, sipas përputhjes ose pozicionit, shtoni Suite tonë Ultimate në kutinë tuaj të veglave në Excel.

    Këtu, ne do të hedhim një vështrim më të afërt në funksionin Hiq sipas pozicionit që ndodhet në Ablebits Data > Text grupi > Hiq .

    Më poshtë, do t'i trajtojmë të dyja Skenarët më të zakonshëm.

    Hiqni gjithçka përpara ose pas tekstit të caktuar

    Supozoni se të gjitha vargjet tuaja burimore përmbajnë një fjalë ose tekst të zakonshëm dhe dëshironi të fshini gjithçka përpara ose pas atij teksti. Për ta bërë këtë, zgjidhni të dhënat tuaja burimore, ekzekutoni mjetin Hiq sipas pozicionit dhe konfigurojeni atë si tregohet më poshtë:

    1. Zgjidhni Të gjitha karakteret përpara tekstit ose opsioni Të gjitha karakteret pas tekstit dhe shkruani tekstin (ose karakterin) kyç në kutinë tjetërnë të.
    2. Në varësi të faktit nëse shkronjat e mëdha dhe të vogla duhet të trajtohen si karaktere të ndryshme ose të njëjta, zgjidhni ose zgjidhni kutinë Ndjeshme me shkronja të vogla .
    3. Goditni Hiq .

    Në këtë shembull, ne po heqim të gjitha karakteret që paraprijnë fjalën "gabim" në qelizat A2:A8:

    Dhe merrni saktësisht rezultatin që kërkojmë:

    Hiqni tekstin midis dy karaktereve

    Në situatën kur informacioni i parëndësishëm është midis 2 karaktereve specifike, ja se si mund ta fshini shpejt:

    1. Zgjidhni Hiqni të gjitha nënvargjet dhe shkruani dy karaktere në kutitë e mëposhtme.
    2. Nëse karakteret "ndërmjet" duhet të hiqen gjithashtu , kontrolloni kutinë Përfshirja e kufijve .
    3. Klikoni Hiq .

    Si një shembull, ne fshijmë çdo gjë midis dy karaktereve tilde (~) dhe marrim vargjet e pastruara në mënyrë të përsosur si rezultat:

    Për të provuar veçori të tjera të dobishme të përfshira në këtë multifunksional mjet, ju inkurajoj të shkarkoni një e versioni i vlerësimit në fund të këtij postimi. Faleminderit që lexuat dhe shpresojmë t'ju shohim në blogun tonë javën tjetër!

    Shkarkimet e disponueshme

    Hiqni karakteret e para ose të fundit - shembujt (skedari .xlsm)

    Ultimate Suite - versioni i provës (skedari .exe)

    dhe një hapësirë ​​(*, ) në kutinë Gjej çfarë.

    Ju lutemi vini re se ne po zëvendësojmë jo vetëm një presje, por një presje dhe një hapësirë për të parandaluar drejtimin hapësira në rezultate. Nëse të dhënat tuaja ndahen me presje pa hapësira, atëherë përdorni një yll të ndjekur nga një presje (*,).

    Për të fshirë tekstin midis dy presjeve , përdorni një yll të rrethuar me presje (,*,).

    Këshillë. Nëse dëshironi që emrat dhe numrat e telefonit të ndahen me presje, atëherë shkruani një presje (,) në fushën Zëvendëso me .

    Hiqni një pjesë të tekstit duke përdorur Flash Fill

    Në versionet moderne të Excel (2013 dhe më vonë), ekziston një mënyrë më e lehtë për të zhdukur tekstin që i paraprin ose pason një karakter specifik - veçoria Flash Fill. Ja se si funksionon:

    1. Në një qelizë pranë qelizës së parë me të dhënat tuaja, shkruani rezultatin e pritur dhe shtypni Enter .
    2. Filloni të shkruani një vlerë të përshtatshme në qelizën tjetër. Pasi Excel të ndiejë modelin në vlerat që po futni, ai do të shfaqë një pamje paraprake për qelizat e mbetura që ndjekin të njëjtin model.
    3. Shtypni tastin Enter për të pranuar sugjerimin.

    U krye!

    Hiqni tekstin duke përdorur formulat

    Në Microsoft Excel, shumë manipulime të të dhënave të kryera duke përdorur veçoritë e integruara mund të kryhen gjithashtu me një formulë. Ndryshe nga metodat e mëparshme, formulat nuk bëjnë asnjë ndryshim në të dhënat origjinale dhe ju japin më shumë kontrollrezultatet.

    Si të hiqni gjithçka pas një karakteri specifik

    Për të fshirë tekstin pas një karakteri të caktuar, formula e përgjithshme është:

    LEFT( qeliza , SEARCH (" char ", qeliza ) -1)

    Këtu, ne përdorim funksionin SEARCH për të marrë pozicionin e karakterit dhe ia kalojmë atë funksionit LEFT, kështu që ai ekstrakton numrin përkatës të karaktereve nga fillimi i vargut. Një karakter i zbritet numrit të kthyer nga SEARCH për të përjashtuar kufizuesin nga rezultatet.

    Për shembull, për të hequr një pjesë të vargut pas një presjeje, futni formulën e mëposhtme në B2 dhe tërhiqeni atë poshtë përmes B7 :

    =LEFT(A2, SEARCH(",", A2) -1)

    Si të hiqni çdo gjë përpara një karakteri specifik

    Për të fshirë një pjesë të një vargu teksti përpara një karakteri të caktuar, formula e përgjithshme është:

    RIGHT( qeliza , LEN( qeliza ) - SEARCH(" char ", qeliza ))

    Këtu, ne përsëri llogarisim pozicionin e karakterit të synuar me ndihmën e SEARCH, e zbresim atë nga gjatësia totale e vargut të kthyer nga LEN dhe e kalojmë diferencën në funksionin RIGHT, kështu që ai tërheq aq shumë karaktere nga fundi i string.

    Për shembull, për të hequr tekstin përpara presjes, formula është:

    =RIGHT(A2, LEN(A2) - SEARCH(",", A2))

    Në rastin tonë, presja pasohet nga një karakter hapësirë. Për të shmangur hapësirat kryesore në rezultate, ne e mbështjellim formulën bazë në funksionin TRIM:

    =TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))

    Shënime:

    • Të dyjanga shembujt e mësipërm supozojmë se ekziston vetëm një shembull i kufirit në vargun origjinal. Nëse ka shumë dukuri, teksti do të hiqet para/pas shkallës së parë .
    • Funksioni SEARCH është jo i ndjeshëm ndaj shkronjave të vogla , që do të thotë se nuk bën dallim ndërmjet shkronjat e vogla dhe të mëdha. Nëse karakteri juaj specifik është një shkronjë dhe dëshironi të dalloni shkronjat e vogla, atëherë përdorni funksionin të ndjeshme ndaj shkronjave FIND në vend të SEARCH.

    Si të fshini tekstin pas shfaqjes së N-të i një karakteri

    Në situatën kur një varg burimi përmban shembuj të shumtë të delimiterit, mund të keni nevojë të hiqni tekstin pas një shembulli specifik. Për këtë, përdorni formulën e mëposhtme:

    LEFT( qeliza , FIND("#", SUBSTITUTE( qeliza , " char ", "#" , n )) -1)

    Ku n është dukuri e karakterit pas së cilës duhet hequr teksti.

    Logjika e brendshme e kësaj formule kërkon përdorimin e disa karaktereve që nuk është i pranishëm askund në të dhënat burimore, një simbol hash (#) në rastin tonë. Nëse ky karakter shfaqet në grupin tuaj të të dhënave, atëherë përdorni diçka tjetër në vend të "#".

    Për shembull, për të hequr çdo gjë pas presjes së dytë në A2 (dhe presjes vetë), formula është:

    =LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

    Si funksionon kjo formulë:

    Pjesa kryesore e formulës është funksioni FIND që llogarit pozicioni i n-sëkufizues (presje në rastin tonë). Ja se si:

    Ne zëvendësojmë presjen e dytë në A2 me një simbol hash (ose ndonjë karakter tjetër që nuk ekziston në të dhënat tuaja) me ndihmën e SUBSTITUTE:

    SUBSTITUTE(A2, ",", "#", 2)

    Vargu që rezulton shkon në argumentin e dytë të FIND, kështu që gjen pozicionin e "#" në atë varg:

    FIND("#", "Emma, Design# (102) 123-4568")

    FIND na tregon se "#" është karakteri i 13-të në varg. Për të ditur numrin e karaktereve që i paraprijnë, thjesht zbrisni 1 dhe do të merrni 12 si rezultat:

    FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1

    Ky numër shkon drejtpërdrejt në argumentin num_chars e LEFT duke i kërkuar që të tërheqë 12 karakteret e para nga A2:

    =LEFT(A2, 12)

    Kjo është ajo!

    Si të fshini tekstin përpara shfaqjes së N-të të një karakteri

    Formula e përgjithshme për të hequr një nënvarg përpara një karakteri të caktuar është:

    RIGHT(ZËVENDËSIM( qeliza , " char ", "#", n ), LEN( qeliza ) - FIND("#", SUBSTITUTE( qeliza , " char ", "#", n )) -1)

    Për shembull, për të hequr tekstin përpara presjes së dytë në A2, formula është:

    =RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

    Për të eliminuar një hapësirë ​​kryesore, ne përsëri përdorim TRIM funksionon si mbështjellës:

    =TRIM(RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))))

    Si funksionon kjo formulë:

    Si përmbledhur, ne zbulojmë sa karaktere janë pas delimiterit të n-të dhe nxirrni një nënvarg me gjatësinë përkatëse nga e djathta. Më poshtë është zbërthimi i formulës:

    Së pari, ne zëvendësojmë presjen e dytë në A2 me një hashsimboli:

    SUBSTITUTE(A2, ",", "#", 2)

    Rasti që rezulton shkon te argumenti tekst i RIGHT:

    RIGHT("Emma, Design# (102) 123-4568", …

    Më pas, duhet të përcaktoni se sa karaktere duhet të nxirren nga fundi i vargut. Për këtë, gjejmë pozicionin e simbolit hash në vargun e mësipërm (i cili është 13):

    FIND("#", SUBSTITUTE(A2, ",", "#", 2))

    Dhe e zbresim atë nga gjatësia totale e vargut (që është e barabartë me 28):

    LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))

    Diferenca (15) shkon te argumenti i dytë i RIGHT duke e udhëzuar atë të tërheqë 15 karakteret e fundit nga vargu në argumentin e parë:

    RIGHT("Emma, Design# (102) 123-4568", 15)

    Dalja është një nënvarg " (102) 123-4568", i cili është shumë afër rezultatit të dëshiruar, përveç një hapësire kryesore. Pra, ne përdorim funksionin TRIM për ta hequr qafe atë.

    Si të hiqni tekstin pas shfaqjes së fundit të një karakteri

    Në rast se vlerat tuaja janë të ndara me një numër të ndryshueshëm kufizuesish, ju mund të dëshirojë të heqë gjithçka pas instancës së fundit të atij kufiri. Kjo mund të bëhet me formulën e mëposhtme:

    LEFT( qeliza , FIND("#", SUBSTITUTE( qeliza , " char ", "# ", LEN( qeliza ) - LEN(SUBSTITUTE( qeliza , " char ", "")))) -1)

    Supozoni kolonën A përmban informacione të ndryshme për punonjësit, por vlera pas presjes së fundit është gjithmonë një numër telefoni. Qëllimi juaj është të hiqni numrat e telefonit dhe të mbani të gjitha detajet e tjera.

    Për të arritur qëllimin, mund të hiqni tekstin pas presjes së fundit në A2 me këtëformula:

    =LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)

    Kopjo formulën poshtë kolonës dhe do të marrësh këtë rezultat:

    Si formula funksionon:

    Thelbi i formulës është se ne përcaktojmë pozicionin e ndarësit të fundit (presjes) në varg dhe tërheqim një nënvarg nga e majta lart në delimiter. Marrja e pozicionit të kufirit është pjesa më e ndërlikuar dhe ja se si e trajtojmë atë:

    Së pari, zbulojmë se sa presje ka në vargun origjinal. Për këtë, ne zëvendësojmë çdo presje me asgjë ("") dhe i shërbejmë vargut që rezulton në funksionin LEN:

    LEN(SUBSTITUTE(A2, ",",""))

    Për A2, rezultati është 35, që është numri i karaktereve në A2 pa presje.

    Zbrisni numrin e mësipërm nga gjatësia totale e vargut (38 karaktere):

    LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))

    … dhe do të merrni 3, që është numri i përgjithshëm i presjeve në A2 (dhe gjithashtu numri rendor i presjes së fundit).

    Më pas, ju përdorni kombinimin tashmë të njohur të funksioneve FIND dhe SUBSTITUTE për të marrë pozicionin e presjes së fundit në varg. Numri i shembullit (presja 3 në rastin tonë) jepet nga formula e sipërpërmendur LEN SUBSTITUTE:

    FIND("#", SUBSTITUTE(A2, ",", "#", 3))

    Duket se presja e tretë është karakteri i 23-të në A2, që do të thotë se na duhet për të nxjerrë 22 karaktere para tij. Pra, ne vendosim formulën e mësipërme minus 1 në argumentin num_chars të LEFT:

    LEFT(A2, 23-1)

    Si të hiqni tekstin përpara shfaqjes së fundit të një karakteri

    Për të fshirëçdo gjë përpara instancës së fundit të një karakteri specifik, formula e përgjithshme është:

    RIGHT( qeliza , LEN( qeliza ) - FIND("#", SUBSTITUTE( qeliza , " char ", "#", LEN( qeliza ) - LEN(ZËVENDËSIMI( qeliza , " char ", "")))))

    Në tabelën tonë të mostrës, për të zhdukur tekstin përpara presjes së fundit, formula merr këtë formë:

    =RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))))

    Si një prekje përfundimtare, ne futeni atë në funksionin TRIM për të eliminuar hapësirat kryesore:

    =TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))

    Si funksionon kjo formulë:

    Si përmbledhje, marrim pozicionin e presjes së fundit siç shpjegohet në shembullin e mëparshëm dhe e zbresim atë nga gjatësia totale e vargut:

    LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))

    Si rezultat, marrim numrin e karaktere pas presjes së fundit dhe kaloni atë në funksionin RIGHT, kështu që sjell kaq shumë karaktere nga fundi i vargut.

    Funksioni i personalizuar për të hequr tekstin në të dyja anët e një karakteri

    Si ju keni parë në shembujt e mësipërm, ju mund të zgjidhni pothuajse çdo rast përdorimi duke përdorur f-në origjinale të Excel unksione në kombinime të ndryshme. Problemi është se ju duhet të mbani mend disa formula të ndërlikuara. Hmm, po sikur të shkruajmë funksionin tonë për të mbuluar të gjithë skenarët? Tingëllon si një ide e mirë. Pra, shtoni kodin e mëposhtëm VBA në librin tuaj të punës (hapat e detajuar për të futur VBA në Excel janë këtu):

    Funksioni RemoveText(str As String, delimiter As String, dukuria As Integer, is_after AsBoolean ) Dim delimiter_num, start_num, delimiter_len Si numër i plotë Dim str_result Si varg delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(delimiter) Për i = 1 Për të shfaqur delimiter_num = InStrpareTextum (start) < delimiter_num Pastaj start_num = delimiter_num + delimiter_len Fund If Next i Nëse 0 < delimiter_num Atëherë nëse e vërtetë = është_pas Atëherë str_result = Mid(str, 1, start_num - delimiter_len - 1) Tjetër str_result = Mid(str, start_num) Fundi Nëse Fundi If RemoveText = str_result Fund Funksioni

    Funksioni ynë emërtohet HiqT dhe ka sintaksën e mëposhtme:

    RemoveText(varg, ndarës, dukuri, është_pas)

    Ku:

    String - është vargu origjinal i tekstit. Mund të përfaqësohet nga një referencë qelize.

    Delimiter - karakteri para/pas të cilit duhet hequr teksti.

    Ndodhja - shembulli i delimiter.

    Is_after - një vlerë Boolean që tregon se në cilën anë të delimiterit duhet hequr teksti. Mund të jetë një karakter i vetëm ose një sekuencë karakteresh.

    • E VËRTETË - fshini gjithçka pas kufirit (duke përfshirë vetë kufirin).
    • FALSE - fshini gjithçka përpara kufirit (duke përfshirë vetë delimiter).

    Pasi të futet kodi i funksionit në librin tuaj të punës, mund të hiqni nënvargjet nga qelizat duke përdorur formula kompakte dhe elegante.

    Për shembull, për të fshirë

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.