Andmete ekstraheerimine Google Sheetsist: teatud tekst stringidest, URL-id linkidest ja palju muud.

  • Jaga Seda
Michael Brown

See järgmine osa meie operatsioonidest tekstiga tabelites on pühendatud ekstraheerimisele. Leia välja viisid, kuidas ekstraheerida erinevaid andmeid - teksti, tähemärke, numbreid, URL-aadresse, e-posti aadresse, kuupäeva & aega jne - erinevatest positsioonidest mitmes Google Sheetsi lahtris korraga.

    Google Sheetsi valemid teksti ja numbrite väljavõtmiseks stringidest

    Valemid Google Sheetsis on kõik. Kuigi mõned kombinatsioonid lisavad teksti & numbreid ja eemaldavad erinevaid märke, mõned neist eraldavad ka teksti, numbreid, eraldi märke jne.

    Andmete väljavõtmine positsiooni järgi: esimene/viimane/mitte N tähemärki

    Kõige lihtsamad funktsioonid, millega Google Sheetsi lahtritest andmeid välja võtta, on LEFT, RIGHT ja MID. Nad saavad mis tahes andmeid positsiooni järgi.

    Andmete väljavõtmine Google Sheets'i lahtrite algusest

    Saate esimesed N tähemärki hõlpsasti välja tõmmata, kasutades funktsiooni LEFT:

    LEFT(string,[number_of_characters])
    • string on tekst, millest soovite andmeid välja võtta.
    • number_of_characters on tähemärkide arv, mis tuleb välja võtta vasakult alustades.

    Siin on kõige lihtsam näide: võtame telefoninumbritest välja riigikoodid:

    Nagu näete, võtavad riigikoodid 6 sümbolit lahtri alguses, seega on vajalik valem järgmine:

    =LEFT(A2,6)

    Vihje. ArrayFormula võimaldab saada korraga 6 märki kogu vahemikust:

    =ArrayFormula(LEFT(A2:A7,6))

    Andmete väljavõtmine Google Sheets'i lahtrite lõpust

    Kui soovite lahtritest välja tõmmata viimased N märki, kasutage selle asemel funktsiooni RIGHT:

    RIGHT(string,[number_of_characters])
    • string on endiselt tekst (või lahtriviide), millest andmeid välja võtta.
    • number_of_characters on ka paremalt poolt võetavate märkide arv.

    Saame, et riigi nimed samadest telefoninumbritest:

    Nad võtavad ainult 2 märki ja see on täpselt see, mida ma mainin valemis:

    =RIGHT(A2,2)

    Vihje. ArrayFormula aitab teil ka andmeid kõigi Google Sheetsi lahtrite lõpust korraga välja võtta:

    =ArrayFormula(RIGHT(A2:A7,2))

    Andmete väljavõtmine Google Sheets'i lahtrite keskelt

    Kui on olemas funktsioonid andmete väljavõtmiseks lahtri algusest ja lõpust, siis peab olema ka funktsioon andmete väljavõtmiseks lahtri keskelt. Ja jah - see on olemas.

    Seda nimetatakse MID:

    MID(string, starting_at, extract_length)
    • string - teksti, kust soovite keskosa välja võtta.
    • starting_at - selle tähemärgi positsioon, millest soovite andmeid saada.
    • extract_length - välja tõmmatavate märkide arv.

    Sama telefoninumbri näitel leiame telefoninumbrid ise ilma riigikoodide ja riigi lühendita:

    Kuna riigikoodid lõpevad 6. tähega ja 7. on kriips, siis tõmban numbrid alates 8. numbrist. Ja kokku saan 8 numbrit:

    =MID(A2,8,8,8)

    Vihje. Ühe lahtri muutmine kogu vahemikuks ja selle mähkimine ArrayFormulasse annab tulemuse iga lahtri kohta korraga:

    =ArrayFormula(MID(A2:A7,8,8))

    Teksti/numbrite väljavõtmine stringidest

    Mõnikord ei ole teksti väljavõtmine positsiooni järgi (nagu eespool näidatud) võimalik. Nõutavad stringid võivad asuda mis tahes lahtriosas ja koosneda erinevast arvust tähemärkidest, mis sunnib teid looma iga lahtri jaoks erinevad valemid.

    Kuid Google Sheets ei oleks Google Sheets, kui tal ei oleks muid funktsioone, mis aitavad teksti stringidest välja võtta.

    Vaatame üle mõned võimalikud viisid, mida arvutustabelid pakuvad.

    Andmete väljavõtmine enne teatud teksti - LEFT+SEARCH

    Alati, kui soovite väljavõtteid, mis eelnevad teatavale tekstile, kasutage LEFT + SEARCH:

    • VÄLJAS kasutatakse teatud arvu tähemärkide tagastamiseks lahtrite algusest (vasakult).
    • OTSIMINE otsib teatud tähemärke/jooni ja saab nende asukoha.

    Kombineerides neid - ja LEFT annab tagasi SEARCHi poolt soovitatud tähemärkide arvu.

    Siin on näide: kuidas eraldada tekstikoodid enne iga "ea"?

    See on valem, mis aitab teid sarnastel juhtudel:

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

    Valemis toimub järgmine asi:

    1. SEARCH("ea",A2) otsib 'ea' lahtris A2 ja tagastab positsiooni, kus see 'ea' algab iga lahtri kohta - 10.
    2. Seega 10. positsioon on see, kus asub 'e'. Aga kuna ma tahan kõike vahetult enne 'ea', siis pean sellest positsioonist lahutama 1. Vastasel juhul tagastatakse ka 'e'. Seega saan lõpuks 9.
    3. VÄLJA vaatab A2 ja saab esimesed 9 märki.

    Andmete väljavõtmine pärast teksti

    On ka vahendeid, et saada kõik pärast teatud tekstijada. Kuid seekord ei aita RIGHT. Selle asemel võtab omakorda REGEXREPLACE.

    Vihje. REGEXREPLACE kasutab regulaarseid väljendeid. Kui te ei ole valmis nendega tegelema, on allpool kirjeldatud palju lihtsam lahendus. REGEXREPLACE(text, regular_expression, replacement)

    • tekst on string või lahter, kus soovite teha muudatusi
    • regular_expression on tähekombinatsioon, mis tähistab otsitavat tekstiosa.
    • asendamine on mis iganes sa tahad saada selle asemel, et tekst

    Niisiis, kuidas kasutada seda andmete väljavõtmiseks pärast teatud teksti - minu näites 'ea' -?

    Lihtne - kasutades seda valemit:

    =REGEXREPLACE(A2,"(.*)ea(.*)","$2")

    Lubage mul selgitada, kuidas see valem täpselt toimib:

    1. A2 on lahter, millest ma andmed välja võtan.
    2. "(.*)ea(.*)" on minu regulaaravaldis (või võib seda nimetada maskiks). Otsin 'ea' ja panen kõik ülejäänud tähemärgid sulgudesse. Märkide rühmi on 2 - kõik enne 'ea' on esimene rühm (.*) ja kõik pärast 'ea' on teine rühm (.*). Kogu mask ise pannakse topeltkriipsudesse.
    3. "$2" on see, mida ma tahan saada - teine grupp (seega selle number 2) eelmisest argumendist.

    Vihje. Kõik regulaaravaldistes kasutatavad tähemärgid on kogutud sellele erilehele.

    Numbrite väljavõtmine Google Sheetsi lahtritest

    Mis siis, kui soovite eraldada ainult numbreid, kui nende asukoht ja mis iganes läheb enne & pärast ei ole oluline?

    Abiks on ka maskid (ehk regulaaravaldised). Tegelikult võtan sama REGEXREPLACE funktsiooni ja muudan regulaaravaldist:

    =REGEXREPLACE(A2,"[^[:digit:]]", "")

    1. A2 on lahter, kust ma tahan neid numbreid saada.
    2. "[^[:digit:]]" on regulaaravaldis, mis võtab vastu kõike peale numbrite. See ^caret sümbol on see, mis teeb numbrite puhul erandi.
    3. "" asendab kõik peale numbrimärkide "mitte midagi". Või teisisõnu, eemaldab selle täielikult, jättes lahtritesse ainult numbrid. Või, eemaldab numbrid :)

    Teksti väljavõtmine, ignoreerides numbreid ja muid sümboleid

    Sarnaselt saab Google Sheetsi lahtritest välja võtta ainult tähestikuandmeid. Teksti tähistava regulaaravaldise lühendiks on vastavalt - alfa:

    =REGEXREPLACE(A2,"[^[:alpha:]]", "")

    See valem võtab kõik peale tähtede (A-Z, a-z) ja asendab selle sõna otseses mõttes "mitte millegagi". Või teisiti öeldes võtab välja ainult tähed.

    Valemivabad viisid andmete väljavõtmiseks Google Sheetsi lahtritest

    Kui otsite lihtsat valemiteta viisi erinevate andmetüüpide väljavõtete tegemiseks, siis olete jõudnud õigesse kohta. Meie lisavõimalus Power Tools pakub just sobivaid vahendeid.

    Erinevat tüüpi andmete ekstraheerimine Power Tools'i lisaseadmete abil

    Esimene tööriist, mida ma tahaksin teile tutvustada, kannab nime Extract. See teeb täpselt seda, mida te selles artiklis otsite - võtab Google Sheets'i lahtritest välja erinevaid andmetüüpe.

    Kasutajasõbralikud seaded

    Kõik juhtumid, mida ma eespool käsitlesin, ei ole lihtsalt lisaseadmega lahendatavad. Tööriist on kasutajasõbralik nii et kõik, mida peate tegema, on valida vahemik, mida soovite töödelda, ja märkida nõutavad märkeruudud ära. Ei mingeid valemeid, ei mingeid regulaarseid väljendeid.

    Mäletate selle artikli teist punkti REGEXREPLACE ja regulaarseid väljendeid? Siin on see, kui lihtne see on lisavõimalus:

    Lisavõimalused

    Nagu näete, on mõned lisavõimalused (lihtsalt märkeruudud), mida saab kiiresti sisse/välja lülitada kõige täpsema tulemuse saamiseks:

    1. Hangib ainult nõutava teksti puhul nõutava teksti stringid.
    2. Tõmmake igast lahtrist välja kõik esinemised ja paigutage need ühte lahtrisse või eraldi veergudesse.
    3. Sisestage uus veerg koos tulemusega lähteandmetest paremale.
    4. Tühjendage väljavõetud tekst lähteandmetest.

    Erinevate andmetüüpide väljavõtmine

    Power Tools mitte ainult ei eemalda andmeid enne/pärast/peale teatud tekstisõnade ja esimese/viimase N tähemärgi vahel, vaid võtab välja ka järgmised andmed:

    1. Numbrid koos kümnendkohtadega, säilitades kümnendkohtade/tuhandete eraldajaid:

  • N tähemärki alates teatavast positsioonist lahtris.
  • Hüperlingid (tekst + link), URL (link), e-posti aadressid.
  • Väljavõte ükskõik millisest andmestikust kõikjalt

    Samuti on võimalus luua oma täpne muster ja kasutada seda väljavõtte tegemiseks. Väljavõte maski järgi ja selle jokerkaardimärgid - * ja ? - teha trikk:

    • Näiteks võite tuua välja kõik sulgude vahelised elemendid, kasutades järgmist maski: (*)
    • Või saada need SKU-d, mille id-des on ainult 5 numbrit: SKU?????
    • Või, nagu ma näitan allpool oleval ekraanipildil, tõmmake kõik pärast iga lahtri "ea": ea*

    Kuupäeva ja kellaaja väljavõtmine ajatemplitest

    Boonusena on olemas väiksem tööriist, mis ekstraheerib kuupäeva ja kellaaega ajatemplitest - seda nimetatakse Split Date & Time.

    Kuigi see loodi eelkõige ajatemplite jagamiseks, on see täiesti võimeline saama ühe soovitud ühiku eraldi:

    Lihtsalt valige üks märkeruutudest sõltuvalt sellest, mida soovite Google Sheets'i ajatemplitest välja võtta - kuupäeva või aega - ja vajutage nuppu Jagatud . Vajalik ühik kopeeritakse uude veergu (või see asendab esialgsed andmed, kui valite ka viimase märkeruudu):

    See tööriist on samuti osa Power Tools lisandprogrammist, nii et kui sa installeerid selle, et saada mis tahes andmeid Google Sheetsi lahtritest, on see sind täielikult kaetud. Kui mitte, siis jäta kommentaar ja me aitame sind :)

    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.