Excel: Stringi jagamine eraldaja või mustri järgi, teksti ja numbrite eraldamine

  • Jaga Seda
Michael Brown

Õpetuses selgitatakse, kuidas Excelis lahtreid jagada, kasutades valemeid ja teksti jagamise funktsiooni. Saate teada, kuidas eraldada teksti koma, tühiku või mõne muu eraldaja abil ning kuidas jagada stringid tekstiks ja numbriteks. .

Teksti jagamine ühest lahtrist mitmeks lahtriks on ülesanne, millega kõik Exceli kasutajad aeg-ajalt tegelevad. Ühes meie varasemas artiklis arutasime, kuidas lahtreid Excelis jagada, kasutades funktsiooni Tekst veergu funktsioon ja Flash Fill Täna vaatleme põhjalikult, kuidas saab stringide jagamist valemite ja Jagatud tekst tööriist.

    Kuidas jagada teksti Excelis valemite abil

    Stringi jagamiseks Excelis kasutate tavaliselt funktsiooni LEFT, RIGHT või MID koos funktsiooniga FIND või SEARCH. Esmapilgul võivad mõned valemid tunduda keerulised, kuid tegelikult on loogika üsna lihtne ja järgmised näited annavad teile mõningaid vihjeid.

    Jagab stringi koma, semikoolon, kaldkriipsu, kriipsu või muu eraldaja abil.

    Excelis lahtrite jagamisel on oluline leida eraldaja positsioon tekstijada sees. Sõltuvalt ülesandest saab seda teha kas suur- ja väiketähelepanuta SEARCHi või suur- ja väiketähelepanuta FINDi abil. Kui teil on eraldaja positsioon teada, kasutage funktsiooni RIGHT, LEFT või MID, et eraldada tekstijada vastav osa. Parema arusaamise huvides vaadelgem järgnevatnäide.

    Oletame, et teil on nimekiri SKU-dest, mis on järgmised Toode-värv-kogus muster ja soovite jagada veeru 3 eraldi veeruks:

    1. Väljavõte eseme nimi (kõik tähemärgid enne esimest sidekriipsu), sisestage järgmine valem B2-sse ja kopeerige see seejärel veergu:

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

      Selles valemis määrab SEARCH esimese sidekriipsu ("-") positsiooni stringis ja funktsioon LEFT võtab välja kõik sellest vasakule jäävad tähemärgid (te lahutate sidekriipsu positsioonist 1, sest te ei taha sidekriipsu ennast välja võtta).

    2. Väljavõte värv (kõik märgid 1. ja 2. sidekriipsu vahel), sisestage C2-sse järgmine valem ja kopeerige see seejärel teistesse lahtritesse:

      =MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

      Selles valemis kasutame Exceli funktsiooni MID, et eraldada tekst A2-st.

      Alguspunkt ja eraldatavate märkide arv arvutatakse 4 erineva SEARCH-funktsiooni abil:

      • Start number on esimese sidekriipsu positsioon +1:

        SEARCH("-",A2) + 1

      • Väljavõetavate tähtede arv : 2. sidekriipsu ja 1. sidekriipsu asukoha vahe, miinus 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Väljavõte suurus (kõik tähemärgid pärast kolmandat sidekriipsu), sisestage D2-sse järgmine valem:

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

      Selles valemis tagastab funktsioon LEN stringi kogupikkuse, millest lahutate 2. sidekriipsu positsiooni. Vahe on 2. sidekriipsu järel olevate märkide arv ja funktsioon RIGHT võtab need välja.

    Samamoodi saab veergu jagada mis tahes muu tähemärgiga. Selleks tuleb vaid asendada "-" vajaliku eraldusmärkiga, näiteks kosmos (" "), koma (","), slash ("/"), käärsoole (";"), semikoolon (";") jne.

    Vihje. Ülaltoodud valemites vastavad +1 ja -1 eraldaja märkide arvule. Selles näites on see sidekriips (1 märk). Kui teie eraldaja koosneb kahest märgist, nt koma ja tühik, siis sisestage SEARCH-funktsiooni ainult koma (",") ja kasutage +1 ja -1 asemel +2 ja -2.

    Kuidas jagada string Exceli reavahega

    Teksti jagamiseks tühiku järgi kasutage eelmises näites näidatud valemiga sarnaseid valemeid. Ainus erinevus on see, et te vajate CHAR-funktsiooni, et anda reavahetuse märk, kuna te ei saa seda otse valemisse sisestada.

    Oletame, et rakud, mida soovite jagada, näevad välja umbes nii:

    Võtame eelmise näite valemid ja asendame sidekriipsu ("-") CHAR(10), kus 10 on ASCII-kood, mis tähistab read feed.

    • Väljavõte eseme nimi :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Väljavõte värv :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Väljavõte suurus :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    Ja nii näeb tulemus välja:

    Kuidas jagada teksti ja numbreid Excelis

    Alustuseks ei ole olemas universaalset lahendust, mis töötaks kõigi tähtnumbriliste stringide puhul. Millise valemi kasutamine sõltub konkreetsest stringimustrist. Järgnevalt leiate valemid kahe levinud stsenaariumi jaoks.

    Jagatud string 'tekst + number' muster

    Oletame, et teil on tekstist ja numbritest koosnev veerg, kus tekstile järgneb alati number. Te soovite algsed stringid katkestada nii, et tekst ja numbrid ilmuksid eraldi lahtrites, näiteks nii:

    Tulemuse võib saavutada kahel erineval viisil.

    Meetod 1: loendage numbreid ja eraldage nii palju tähti.

    Lihtsaim viis teksti stringi jagamiseks, kus number tuleb pärast teksti, on järgmine:

    aadressile numbrite väljavõtte , otsite stringist kõik võimalikud numbrid vahemikus 0-9, saate numbrite summa ja tagastate nii palju sümboleid stringi lõpust.

    Algse stringi A2 puhul on valem järgmine:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    aadressile teksti väljavõte , arvutate, mitu tekstimärki string sisaldab, lahutades algse stringi kogupikkusest A2 väljavõetud numbrite arvu (C2). Seejärel kasutate funktsiooni LEFT, et tagastada nii palju tähemärke stringi algusest.

    =LEFT(A2,LEN(A2)-LEN(C2))

    Kus A2 on algne string ja C2 on ekstraheeritud number, nagu on näidatud ekraanipildil:

    Meetod 2: 1. numbri asukoha leidmine stringis

    Alternatiivne lahendus oleks järgmise valemi kasutamine, et määrata esimese numbri positsioon stringis:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Kui esimese numbri asukoht on leitud, saate teksti ja numbreid jagada väga lihtsate valemite LEFT ja RIGHT abil.

    Väljavõte tekst :

    =LEFT(A2, B2-1)

    Väljavõte number :

    =RIGHT(A2, LEN(A2)-B2+1)

    Kus A2 on algne string ja B2 on esimese numbri positsioon.

    Et vabaneda esimese numbri positsiooni hoidvast abisambast, saate MIN-vormeli integreerida funktsioonidesse LEFT ja RIGHT:

    Valem ekstraheerimiseks tekst :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Valem ekstraheerimiseks numbrid :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Jagatud string 'number + tekst' muster

    Kui te jagate lahtrid, kus tekst ilmub pärast numbrit, saate te numbrite väljavõtte järgmise valemiga:

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    Valem on sarnane eelmises näites käsitletud valemiga, ainult et te kasutate funktsiooni LEFT asemel RIGHT, et saada number stringi vasakult poolt.

    Kui teil on numbrid olemas, väljavõte tekst lahutades numbrite arvu algse stringi kogupikkusest:

    =RIGHT(A2,LEN(A2)-LEN(B2))

    Kus A2 on algne string ja B2 on ekstraheeritud number, nagu on näidatud alloleval ekraanipildil:

    Näpunäide. Et saada number mis tahes positsioon tekstistringis , kasutage kas seda valemit või tööriista Extract.

    Nii saab Excelis jagada stringid, kasutades erinevate funktsioonide erinevaid kombinatsioone. Nagu näete, ei ole valemid kaugeltki ilmsed, seega võite nende lähemaks uurimiseks alla laadida Exceli näidis Exceli Split Cells töövihiku.

    Kui Exceli valemite salapäraste keerdkäikude väljaselgitamine ei ole teie lemmiktöö, võib teile meeldida Exceli lahtrite jagamise visuaalne meetod, mida näidatakse selle õpetuse järgmises osas.

    Kuidas jagada lahtrid Excelis jagatud teksti tööriistaga Split Text

    Alternatiivne viis Exceli veeru jagamiseks on kasutada meie Ultimate Suite for Excel'ile lisatud teksti jagamise funktsiooni, mis pakub järgmisi võimalusi:

      Et asjad oleksid selgemad, vaatame iga võimalust ükshaaval lähemalt.

      Jagage lahtrid tähemärgi järgi

      Valige see valik alati, kui soovite lahtri sisu jaotada aadressil iga määratud tähemärgi esinemine .

      Selle näite jaoks võtame stringid Toode-värv-kogus muster, mida kasutasime selle õpetuse esimeses osas. Nagu mäletate, eraldasime need 3 erinevasse veergu, kasutades 3 erinevat valemit. Ja siin on, kuidas saate sama tulemuse saavutada 2 kiire sammuga:

      1. Eeldades, et teil on paigaldatud Ultimate Suite, valige jaotatavad lahtrid ja klõpsake nuppu Jagatud tekst ikooni kohta Ablebits andmed vahekaart.

      2. The Jagatud tekst avaneb Exceli akna paremal pool ja teete järgmist:
        • Laiendada Jagatud tähemärgi järgi gruppi ja valige üks etteantud eraldusmärkidest või sisestage mõni muu märk lahtrisse Kohandatud kast.
        • Valige, kas lahtrid jaotatakse veergudeks või ridadeks.
        • Vaadake tulemus läbi all Eelvaade sektsioonis ja klõpsake nuppu Jagatud nupp.

      Vihje. Kui lahtris võib olla mitu järjestikust eraldusmärki (näiteks rohkem kui üks tühiku märk), valige lahtris Käsitleda järjestikuseid eraldusjooni kui ühte. kast.

      Valmis! Ülesanne, mis nõudis 3 valemit ja 5 erinevat funktsiooni, võtab nüüd vaid paar sekundit ja ühe nupuvajutuse.

      Jagage lahtrid stringi järgi

      See valik võimaldab teil jagada stringid, kasutades mis tahes tähemärkide kombinatsioon tehniliselt jagate stringi osadeks, kasutades iga osa piirina ühte või mitut erinevat alajaotust.

      Näiteks, et jagada lause konjunktsioonidega " ja " ja " või ", laiendage Jagatud stringide kaupa rühma ja sisestage eraldusjooned, üks iga rea kohta:

      Selle tulemusel eraldatakse lähtefraas iga eraldaja esinemise juures:

      Vihje. Tähemärgid "või" ja "ja" võivad sageli olla osa sõnadest nagu "oranž" või "Andaluusia", nii et kirjutage kindlasti ka kosmos enne ja pärast ja ja või et vältida sõnade jagamist.

      Ja siin veel üks reaalne näide. Oletame, et olete importinud välisest allikast kuupäevade veeru, mis näeb välja järgmiselt:

      5.1.2016 12:20

      5.2.2016 14:50

      See vorming ei ole Exceli jaoks tavapärane ja seetõttu ei tunnista ükski kuupäevafunktsioon ühtegi kuupäeva- või ajaelementi. Selleks, et jagada päev, kuu, aasta, tunnid ja minutid eraldi lahtritesse, sisestage järgmised tähemärgid lahtrisse Jagatud stringide kaupa kast:

      • Punkt (.) päeva, kuu ja aasta eraldamiseks
      • koolon (:) tundide ja minutite eraldamiseks
      • Ruum kuupäeva ja kellaaja eraldamiseks

      Vajuta Jagatud nuppu ja saate kohe tulemuse:

      Jagage lahtrid maski (mustri) järgi

      Raku eraldamine maski abil tähendab stringi jagamist mustri alusel .

      See valik on väga kasulik, kui on vaja jagada homogeensete stringide nimekiri mõneks elemendiks või alamstringiks. Keeruline on see, et lähteteksti ei saa jagada iga antud eraldaja esinemise juures, vaid ainult mõne konkreetse(te) esinemise juures. Järgnev näide teeb asja arusaadavamaks.

      Oletame, et teil on mingist logifailist väljavõetud stringide nimekiri:

      Te soovite, et kuupäev ja kellaaeg (kui neid on), veakood ja erandite üksikasjad oleksid kolmes eraldi veerus. Te ei saa kasutada tühikut eraldajana, sest kuupäeva ja kellaaja vahel on tühikud, mis peaksid olema ühes veerus, ja erandite tekstis on tühikud, mis peaksid samuti olema ühes veerus.

      Lahendus on stringi jagamine järgmise maski abil: *ERROR:*Erand:*

      Kui tärn (*) tähistab mis tahes arvu tähemärke.

      Koolonid (:) on lisatud eraldusmärkide hulka, sest me ei taha, et need ilmuksid tulemuseks olevates lahtrites.

      Ja nüüd laiendage Jagatud maski järgi sektsioonis Jagatud tekst paneelil, sisestage maski lahtrisse Sisestage piiritlejad kasti ja klõpsake Split :

      Tulemus näeb välja umbes nii:

      Märkus. Stringi jagamine maski järgi on suur- ja väiketähelepanu Seega kirjutage maskis olevad tähemärgid kindlasti täpselt nii, nagu need on algses stringis.

      Selle meetodi suur eelis on paindlikkus. Näiteks kui kõik algsed stringid sisaldavad kuupäeva ja kellaaja väärtusi ja soovite, et need ilmuksid erinevates veergudes, kasutage seda maski:

      * *ERROR:*Erand:*

      Lihtsasse inglise keelde tõlgituna annab mask add-inile korralduse jagada algsed stringid 4 osaks:

      • Kõik tähemärgid enne esimest tühikut, mis leitakse stringis (kuupäev).
      • Tähed 1. tühiku ja sõna vahel ERROR: (aeg)
      • Teksti vahel ERROR: ja Erand: (veakood)
      • Kõik, mis tuleb pärast Erand: (eranditekst)

      Loodan, et teile meeldis see kiire ja lihtne viis stringide jagamiseks Excelis. Kui olete uudishimulik, et seda proovida, siis allpool on allalaadimiseks saadaval hindamisversioon. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

      Saadaolevad allalaadimised

      Exceli jagatud lahtrite valemid (.xlsx fail)

      Ultimate Suite 14-päevane täisfunktsionaalne versioon (.exe fail)

      Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.