Innholdsfortegnelse
Denne neste delen av operasjonene våre med tekst i regneark er viet utvinning. Finn ut måter å trekke ut ulike data – tekst, tegn, tall, URL-er, e-postadresser, dato og amp; tid osv. — fra ulike posisjoner i flere Google Sheets-celler samtidig.
Google Sheets-formler for å trekke ut tekst og tall fra strenger
Formler i Google Ark er alt. Mens noen kombinasjoner legger til tekst & tall og fjern ulike tegn, noen av dem trekker også ut tekst, tall, separate tegn osv.
Trekker ut data etter posisjon: første/siste/midtste N tegn
De enkleste funksjonene å håndtere når du er i ferd med å ta ut data fra Google Regneark, er cellene VENSTRE, HØYRE og MIDTE. De får alle data etter posisjon.
Trekk ut data fra begynnelsen av cellene i Google Sheets
Du kan enkelt trekke ut de første N tegnene ved å bruke VENSTRE-funksjonen:
VENSTRE(streng, [antall_tegn])- streng er teksten du vil trekke ut data fra.
- antall_tegn er antall tegn som skal tas ut fra og med fra venstre.
Her er det enkleste eksempelet: la oss ta ut landskodene fra telefonnumrene:
Som du kan se, land koder tar 6 symboler i begynnelsen av cellene, så formelen du trenger er:
=LEFT(A2,6)
Tips. ArrayFormula vil gjøre det mulig å få 6 tegn frahele området på en gang:
=ArrayFormula(LEFT(A2:A7,6))
Trekk ut data fra slutten av cellene i Google Sheets
For å trekke ut de siste N tegnene fra cellene, bruk HØYRE-funksjonen i stedet:
HØYRE(streng,[antall_tegn])- streng er fortsatt teksten (eller en cellereferanse) å trekke ut data fra.
- antall_tegn er også antallet tegn som skal tas fra høyre.
La oss få landsnavnene fra de samme telefonnumrene:
De tar bare 2 tegn og det er akkurat det jeg nevner i formelen:
=RIGHT(A2,2)
Tips. ArrayFormula vil også hjelpe deg å trekke ut data fra slutten av alle Google Sheets-celler samtidig:
=ArrayFormula(RIGHT(A2:A7,2))
Trekke ut data fra midten av cellene i Google Sheets
Hvis det er funksjoner for å trekke ut data fra begynnelsen og slutten av celler, må det være en funksjon for å trekke ut data fra midten også. Og ja — det er en.
Det heter MID:
MID(streng, start_ved, ekstrakt_lengde)- streng — teksten du vil ta ut den midterste delen fra.
- start_ved — posisjonen til tegnet du vil begynne å hente data fra.
- utdrag_lengde — tallet med tegn du må trekke ut.
Ved eksempelet med de samme telefonnumrene, la oss finne telefonnumrene selv uten deres landskoder og landforkortelse:
Ettersom landskodene slutter med det 6. tegnet og det 7. er bindestreken, vil jeg trekke tall fra det åttende sifferet. Og jeg får 8 siffer totalt:
=MID(A2,8,8)
Tips. Hvis du endrer én celle til hele området og pakker den inn i ArrayFormula, får du resultatet for hver celle samtidig:
=ArrayFormula(MID(A2:A7,8,8))
Trekk ut tekst/tall fra strenger
Noen ganger er det ikke et alternativ å trekke ut tekst etter posisjon (som vist ovenfor). De nødvendige strengene kan ligge i hvilken som helst del av cellene dine og bestå av et annet antall tegn som tvinger deg til å lage forskjellige formler for hver celle.
Men Google Sheets ville ikke vært Google Sheets hvis det ikke hadde andre funksjoner som kan hjelpe til med å trekke ut tekst fra strenger.
La oss se på noen mulige måter regneark tilbyr.
Pakk ut data før en bestemt tekst — VENSTRE+SØK
Når du ønsker å trekke ut data som kommer foran en bestemt tekst, bruk VENSTRE + SØK:
- VENSTRE brukes til å returnere et visst antall tegn fra begynnelsen av cellene (fra venstre)
- SØK ser etter bestemte tegn/strenger og får posisjonen deres.
Kombiner disse — og VENSTRE vil returnere antall tegn foreslått av SØK.
Her er et eksempel: hvordan trekker du ut tekstkoder før hver "ea"?
Dette er formelen som vil hjelpe deg med lignendetilfeller:
=LEFT(A2,SEARCH("ea",A2)-1)
Her er hva som skjer i formelen:
- SØK("ea",A2 ) ser etter 'ea' i A2 og returnerer posisjonen der den 'ea' starter for hver celle — 10.
- Så 10. posisjon er der 'e' ligger. Men siden jeg vil ha alt rett før "ea", må jeg trekke 1 fra den posisjonen. Ellers vil 'e' også bli returnert. Så jeg får 9 til slutt.
- VENSTRE ser på A2 og får de første 9 tegnene.
Trekker ut data etter teksten
Der er også midler for å få alt etter en bestemt tekststreng. Men denne gangen hjelper ikke RIGHT. I stedet tar REGEXREPLACE sin tur.
Tips. REGEXREPLACE bruker regulære uttrykk. Hvis du ikke er klar til å håndtere dem, er det en mye enklere løsning beskrevet nedenfor. REGEXREPLACE(tekst, vanlig_uttrykk, erstatning)
- tekst er en streng eller en celle der du vil gjøre endringer
- vanlig_uttrykk er kombinasjonen av tegn som står for en del av teksten du leter etter
- erstatning er det du ønsker å få i stedet for den teksten
Så, hvordan bruker du det til å trekke ut data etter en bestemt tekst — 'ea' i mitt eksempel?
Enkelt — ved å bruke denne formelen:
=REGEXREPLACE(A2,"(.*)ea(.*)","$2")
La meg forklare hvordan denne formelen fungerer nøyaktig:
- A2 er en celle jeg trekker ut dataene fra.
- "(.*)ea(.*)" er min fasteuttrykk (eller du kan kalle det en maske). Jeg ser etter 'ea' og setter alle andre tegn i parentes. Det er 2 grupper med tegn — alt før 'ea' er den første gruppen (.*) og alt etter 'ea' er den andre (.*). Hele masken i seg selv er satt til doble anførselstegn.
- "$2" er det jeg vil ha — den andre gruppen (derav nummer 2) fra det forrige argumentet.
Tips. Alle tegn som brukes i regulære uttrykk er samlet på denne spesialsiden.
Trekk ut tall fra Google Regneark-celler
Hva om du bare vil trekke ut tall når deres posisjon og hva som helst går foran & etter spiller ingen rolle?
Masker (a.k.a. regulære uttrykk) vil også hjelpe. Faktisk tar jeg den samme REGEXREPLACE-funksjonen og endrer det regulære uttrykket:
=REGEXREPLACE(A2,"[^[:digit:]]", "")
- A2 er en celle hvor jeg vil hente disse tallene fra.
- "[^[:digit:]]" er et regulært uttrykk som tar alt annet enn sifre. Det ^caret-symbolet er det som gjør et unntak for sifre.
- "" erstatter alt unntatt numeriske tegn med "ingenting". Eller, med andre ord, fjerner den helt, og lar bare tall være i cellene. Eller trekker ut tall :)
Tekst ut tekst som ignorerer tall og andre tegn
På lignende måte kan du bare ta ut alfabetiske data fra Google Sheets-celler. Sammentrekningen for det regulære uttrykket somstår for tekst kalles tilsvarende — alpha:
=REGEXREPLACE(A2,"[^[:alpha:]]", "")
Denne formelen tar alt annet enn bokstaver (A-Z, a-z) og erstatter den bokstavelig talt med "ingenting" . Eller, for å si det på en annen måte, tar bare ut bokstaver.
Formelfrie måter å trekke ut data fra Google Sheets-celler på
Hvis du leter etter en enkel formelfri måte å trekke ut ulike typer data, har du kommet til rett sted. Vårt Power Tools-tillegg har akkurat verktøyene for jobben.
Pakk ut forskjellige typer data ved hjelp av Power Tools-tillegg
Det første verktøyet jeg vil at du skal vite, heter Extract . Den gjør akkurat det du ser etter i denne artikkelen – trekker ut forskjellige typer data fra Google Sheets-celler.
Brukervennlige innstillinger
Alle tilfellene jeg har dekket ovenfor, er ikke det. bare løses med tillegget. Verktøyet er brukervennlig så alt du trenger å gjøre er å velge området du vil behandle og krysse av for de nødvendige avmerkingsboksene. Ingen formler, ingen regulære uttrykk.
Husker du det andre punktet i denne artikkelen med REGEXREPLACE og regulære uttrykk? Her er hvor enkelt det er for tillegget:
Ekstraalternativer
Som du kan se, er det noen ekstraalternativer (bare avmerkingsbokser) som du kan raskt slå på/av for å få det mest presise resultatet:
- Få bare strengene til den nødvendige store og små bokstaven.
- Trekk ut alle forekomster fra hvercelle og plasser dem i én celle eller separate kolonner.
- Sett inn en ny kolonne med resultatet til høyre for kildedataene.
- Slett den utpakkede teksten fra kildedataene.
Pakk ut forskjellige datatyper
Ikke bare Power Tools trekker ut data før/etter/mellom visse tekststrenger og de første/siste N-tegnene; men det tar også ut følgende:
- Tall sammen med deres desimaler som holder desimal-/tusenskilletegnene intakte:
Trekk ut hvilken som helst streng med data fra overalt
Det er også en mulighet til å sette opp ditt eget eksakte mønster og bruke det til ekstraksjonen. Uttrekk med maske og jokertegnene – * og ? – gjør susen:
- Du kan for eksempel hente frem alt mellom parentesene ved å bruke følgende maske: (*)
- Eller få de SKUene som bare har 5 tall i ID-ene sine: SKU?????
- Eller, som jeg viser på skjermbildet nedenfor, trekk alt etter hver 'ea' i hver celle: ea*
Trekk ut dato og klokkeslett fra tidsstempler
Som en bonus er det et mindre verktøy som vil trekke ut dato og klokkeslett fra tidsstempler – det heter Split Date & Tid.
Selv om det ble laget for å dele tidsstempler i utgangspunktet, er det perfekti stand til å få en av de ønskede enhetene individuelt:
Bare velg en av avmerkingsboksene avhengig av hva du vil trekke ut – dato eller klokkeslett – fra tidsstempler i Google Sheets og trykk Splitt . Den nødvendige enheten vil bli kopiert over til en ny kolonne (eller den vil erstatte de originale dataene hvis du også velger den siste avkrysningsboksen):
Dette verktøyet er også en del av Power Tools-tillegget, så når du først har installert det for å hente data fra Google Sheets-celler, er det fullstendig dekket. Hvis ikke, legg igjen en kommentar, så hjelper vi deg :)