Udtrække data fra Google Sheets: Visse tekster fra strenge, URL'er fra links m.m.

  • Del Dette
Michael Brown

Denne næste del af vores arbejde med tekst i regneark er dedikeret til udtræk. Find ud af hvordan du kan udtrække forskellige data - tekst, tegn, tal, URL'er, e-mailadresser, dato & tid osv. - fra forskellige positioner i flere Google Sheets-celler på én gang.

    Google Sheets-formler til at udtrække tekst og tal fra strenge

    Formler i Google Sheets er alt muligt. Mens nogle kombinationer tilføjer tekst & tal og fjerner forskellige tegn, kan nogle af dem også udtrække tekst, tal, separate tegn osv.

    Udtræk data efter position: første/sidste/mellemste N tegn

    De letteste funktioner at håndtere, når du skal tage data ud af Google Sheets-celler, er LEFT, RIGHT og MID. De henter data efter position.

    Udtrække data fra begyndelsen af celler i Google Sheets

    Du kan nemt trække de første N tegn ud ved hjælp af funktionen LEFT:

    LEFT(string,[antal_af_tegn])
    • streng er den tekst, hvorfra du vil udtrække data.
    • antal_af_tegn er antallet af tegn, der skal tages ud fra venstre.

    Her er det enkleste eksempel: Lad os fjerne landekoderne fra telefonnumrene:

    Som du kan se, skal landekoder have 6 symboler i begyndelsen af cellerne, så den formel, du skal bruge, er:

    =LEFT(A2,6)

    Tip. ArrayFormula gør det muligt at hente 6 tegn fra hele området på én gang:

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

    Udtrække data fra slutningen af celler i Google Sheets

    Hvis du vil trække de sidste N tegn ud af cellerne, skal du i stedet bruge funktionen RIGHT:

    RIGHT(string,[antal_af_tegn])
    • streng er stadig den tekst (eller en cellehenvisning), som dataene skal udtrækkes fra.
    • antal_af_tegn er også det antal tegn, der skal tages fra højre.

    Lad os få de landnavne fra de samme telefonnumre:

    De tager kun 2 tegn, og det er præcis, hvad jeg nævner i formlen:

    =RIGHT(A2,2)

    Tip. ArrayFormula hjælper dig også med at udtrække data fra slutningen af alle Google Sheets-celler på én gang:

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

    Udtrække data fra midten af celler i Google Sheets

    Hvis der findes funktioner til at udtrække data fra begyndelsen og slutningen af cellerne, må der også være en funktion til at udtrække data fra midten. Og ja - der findes en.

    Det hedder MID:

    MID(string, starting_at, extract_length)
    • streng - den tekst, hvor du vil fjerne den midterste del fra.
    • starting_at - positionen for det tegn, hvorfra du vil begynde at hente dataene.
    • ekstrakt_længde - det antal tegn, du skal trække ud.

    Lad os med eksemplet med de samme telefonnumre finde selve telefonnumrene uden deres landekoder og landekodeforkortelse:

    Da landekoderne slutter med det 6. tegn, og det 7. er bindestreg, vil jeg trække tal fra det 8. ciffer. Og jeg får 8 cifre i alt:

    =MID(A2,8,8,8)

    Tip. Hvis du ændrer en celle til hele området og indpakker den i ArrayFormula, får du resultatet for hver celle på én gang:

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

    Udtrække tekst/tal fra strenge

    Nogle gange er det ikke muligt at udtrække tekst efter position (som vist ovenfor). De krævede strenge kan ligge i en hvilken som helst del af dine celler og bestå af et forskelligt antal tegn, hvilket tvinger dig til at oprette forskellige formler for hver celle.

    Men Google Sheets ville ikke være Google Sheets, hvis det ikke havde andre funktioner, der kan hjælpe med at udtrække tekst fra strenge.

    Lad os gennemgå nogle få mulige måder, som regneark kan bruges på.

    Udtrække data før en bestemt tekst - LEFT+SEARCH

    Når du ønsker at udtrække data, der går forud for en bestemt tekst, skal du bruge LEFT + SEARCH:

    • VENSTRE bruges til at returnere et bestemt antal tegn fra begyndelsen af cellerne (fra venstre)
    • SØG leder efter bestemte tegn/strenge og får deres position.

    Hvis du kombinerer disse - og LEFT returnerer det antal tegn, der er foreslået af SEARCH.

    Her er et eksempel: Hvordan uddrager du tekstkoder før hvert "ea"?

    Dette er den formel, der vil hjælpe dig i lignende tilfælde:

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

    Her er, hvad der sker i formlen:

    1. SEARCH("ea",A2) leder efter "ea" i A2 og returnerer den position, hvor denne "ea" starter for hver celle - 10.
    2. Så 10. position er hvor "e" befinder sig. Men da jeg vil have alt lige før "ea", skal jeg trække 1 fra denne position. Ellers vil "e" også blive returneret. Så jeg får 9 i sidste ende.
    3. VENSTRE ser på A2 og får de første 9 tegn.

    Udtrække data efter teksten

    Der findes også midler til at få alt efter en bestemt tekststreng. Men denne gang hjælper RIGHT ikke, men REGEXREPLACE tager sin tur.

    Tip. REGEXREPLACE bruger regulære udtryk. Hvis du ikke er klar til at håndtere dem, er der en meget nemmere løsning, som er beskrevet nedenfor. REGEXREPLACE(text, regular_expression, replacement)

    • tekst er en streng eller en celle, hvor du ønsker at foretage ændringer
    • regular_expression er den kombination af tegn, der står for den del af teksten, som du leder efter
    • udskiftning er det, du ønsker at få i stedet for det tekst

    Så hvordan bruger du det til at udtrække data efter en bestemt tekst - "ea" i mit eksempel?

    Det er nemt - med denne formel:

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

    Lad mig forklare, hvordan denne formel fungerer præcist:

    1. A2 er en celle, som jeg udtrækker dataene fra.
    2. "(.*)ea(.*)" er mit regulære udtryk (eller du kan kalde det en maske). Jeg leder efter 'ea' og sætter alle andre tegn i parentes. Der er 2 grupper af tegn - alt før 'ea' er den første gruppe (.*) og alt efter 'ea' er den anden (.*). Hele selve masken sættes i dobbelte anførselstegn.
    3. "$2" er det, jeg ønsker at få - den anden gruppe (derfor nummer 2) fra det foregående argument.

    Tip. Alle tegn, der anvendes i regulære udtryk, er samlet på denne særlige side.

    Udtrække tal fra celler i Google Sheets

    Hvad hvis du kun vil udtrække tal, når deres position og det, der går før & efter, er ligegyldigt?

    Masker (også kaldet regulære udtryk) hjælper også. Jeg tager den samme REGEXREPLACE-funktion og ændrer det regulære udtryk:

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

    1. A2 er en celle, hvor jeg ønsker at hente tallene fra.
    2. "[^[:digit:]]]" er et regulært udtryk, der accepterer alt undtagen cifre. ^caret-symbolet er det, der gør en undtagelse for cifre.
    3. "" erstatter alt undtagen numeriske tegn med "ingenting". Eller, med andre ord, fjerner det helt, så der kun er tal tilbage i cellerne. Eller, udtrækker tal :)

    Udtrække tekst uden at tage hensyn til tal og andre tegn

    På samme måde kan du kun fjerne alfabetiske data fra Google Sheets-celler. Den forkortelse for det regulære udtryk, der står for tekst, kaldes tilsvarende - alpha:

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

    Denne formel tager alt andet end bogstaver (A-Z, a-z) og erstatter det bogstaveligt talt med "ingenting". Eller sagt på en anden måde, den tager kun bogstaver ud.

    Formelfrie måder at udtrække data fra celler i Google Sheets på

    Hvis du leder efter en nem måde at udtrække forskellige typer data uden formler på, er du kommet til det rette sted. Vores tillægsmodul Power Tools har de helt rigtige værktøjer til opgaven.

    Udtrække forskellige typer data ved hjælp af Power Tools-tilføjelser

    Det første værktøj, du skal kende, hedder Extract. Det gør præcis det, du er kommet efter i denne artikel - det udtrækker forskellige typer data fra Google Sheets-celler.

    Brugervenlige indstillinger

    Alle de tilfælde, jeg har beskrevet ovenfor, kan ikke kun løses med tilføjelsen. Værktøjet er brugervenligt så det eneste, du skal gøre, er at vælge det område, du vil behandle, og afkrydse de nødvendige afkrydsningsfelter. Ingen formler, ingen regulære udtryk.

    Kan du huske det andet punkt i denne artikel med REGEXREPLACE og regulære udtryk? Her er det så enkelt for tilføjelsesprogrammet:

    Ekstraudstyr

    Som du kan se, er der nogle ekstra muligheder (kun afkrydsningsfelter), som du kan hurtigt tænde/slukke for at få det mest præcise resultat:

    1. Hent kun strengene med den krævede tekst med de krævede bogstaver.
    2. Træk alle forekomster ud af hver celle, og placer dem i én celle eller i separate kolonner.
    3. Indsæt en ny kolonne med resultatet til højre for kildedataene.
    4. Ryd den udtrukne tekst fra kildedataene.

    Udtrække forskellige datatyper

    Power Tools udtrækker ikke kun data før/efter/imellem bestemte tekststrenge og de første/sidste N tegn, men det fjerner også følgende:

    1. Tal sammen med deres decimaltal, idet decimaltal og tusindtal ikke fjernes:

  • N tegn, der starter fra en bestemt position i en celle.
  • Hyperlinks (tekst + link), URL'er (link), e-mail-adresser.
  • Udtrække en vilkårlig datastreng fra alle steder

    Der er også mulighed for at oprette dit eget nøjagtige mønster og bruge det til udtrækningen. Uddrag efter maske og dens jokertegn - * og ? - gøre tricket:

    • Du kan f.eks. fremhæve alt mellem parenteserne ved hjælp af følgende maske: (*)
    • Eller få de SKU'er, der kun har 5 numre i deres id'er: SKU?????
    • Eller, som jeg viser på skærmbilledet nedenfor, trækker du alt efter hvert "ea" i hver celle: ea*

    Udtrække dato og klokkeslæt fra tidsstempler

    Som en bonus er der et mindre værktøj, der kan udtrække dato og tid fra tidsstempler - det hedder Split Date & Time.

    Selv om den oprindeligt blev oprettet for at opdele tidsstempler, kan den sagtens få en af de ønskede enheder enkeltvis:

    Du skal blot markere en af afkrydsningsfelterne afhængigt af, hvad du vil udtrække - dato eller tid - fra tidsstempler i Google Sheets, og trykke på Split Den ønskede enhed kopieres over i en ny kolonne (eller erstatter de oprindelige data, hvis du også markerer det sidste afkrydsningsfelt):

    Dette værktøj er også en del af Power Tools add-on, så når du har installeret det for at hente data fra Google Sheets-celler, er du helt dækket ind. Hvis ikke, så skriv en kommentar, så hjælper vi dig :)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.