Extrahera data från Google Sheets: viss text från strängar, URL:er från länkar med mera.

  • Dela Detta
Michael Brown

Nästa del av vår verksamhet med text i kalkylblad handlar om extraktion. Ta reda på hur du kan extrahera olika data - text, tecken, siffror, webbadresser, e-postadresser, datum & tid etc. - från olika positioner i flera Google Sheets-celler samtidigt.

    Google Sheets-formler för att extrahera text och siffror från strängar

    Formler i Google Sheets är allt möjligt. Medan vissa kombinationer lägger till text & amp; siffror och tar bort olika tecken, kan vissa av dem också extrahera text, siffror, separata tecken osv.

    Extrahera data efter position: första/ sista/mellersta N tecken

    De enklaste funktionerna att använda när du ska ta ut data från Google Sheets-celler är LEFT, RIGHT och MID. De hämtar data efter position.

    Extrahera data från början av celler i Google Sheets

    Du kan enkelt ta ut de första N tecknen med hjälp av funktionen LEFT:

    LEFT(sträng,[antal_tecken])
    • sträng är den text som du vill extrahera data från.
    • antal_av_tecken är antalet tecken som ska tas bort från vänster.

    Här är det enklaste exemplet: låt oss ta bort landskoderna från telefonnumren:

    Som du kan se tar landskoderna 6 symboler i början av cellerna, så formeln du behöver är:

    = LÄNKRE(A2,6)

    Tips: ArrayFormula gör det möjligt att hämta 6 tecken från hela intervallet på en gång:

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

    Extrahera data från slutet av celler i Google Sheets

    Om du vill ta ut de sista N tecknen från cellerna använder du istället funktionen RIGHT:

    RIGHT(sträng,[antal_tecken])
    • sträng är fortfarande texten (eller en cellreferens) som data ska extraheras från.
    • antal_av_tecken är också antalet tecken som ska tas från höger.

    Låt oss få fram landsnamn från samma telefonnummer:

    De behöver bara två tecken och det är precis vad jag nämner i formeln:

    =RIGHT(A2,2)

    Tips: ArrayFormula hjälper dig också att extrahera data från slutet av alla Google Sheets-celler på en gång:

    =ArrayFormula(RÄTT(A2:A7,2))

    Extrahera data från mitten av cellerna i Google Sheets

    Om det finns funktioner för att extrahera data från början och slutet av cellerna måste det finnas en funktion för att extrahera data från mitten av cellerna också. Och ja, det finns en.

    Det kallas MID:

    MID(string, starting_at, extract_length)
    • sträng - texten där du vill ta bort den mellersta delen.
    • starting_at - positionen för det tecken från vilket du vill börja hämta data.
    • extrakt_längd - det antal tecken som du behöver ta fram.

    Med samma exempel på telefonnummer kan vi hitta själva telefonnumren utan landskoder och landsförkortningar:

    Eftersom landskoderna slutar med det sjätte tecknet och det sjunde tecknet är ett bindestreck, kommer jag att ta fram siffror från och med den åttonde siffran, vilket ger mig totalt åtta siffror:

    =MID(A2,8,8)

    Tips: Om du ändrar en cell till hela intervallet och omsluter den i ArrayFormula får du resultatet för varje cell på en gång:

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

    Extrahera text/siffror från strängar

    Ibland är det inte möjligt att extrahera text efter position (som visas ovan). De nödvändiga strängarna kan finnas i vilken del som helst av cellerna och bestå av olika antal tecken, vilket gör att du måste skapa olika formler för varje cell.

    Men Google Sheets skulle inte vara Google Sheets om det inte hade andra funktioner som hjälper dig att extrahera text från strängar.

    Låt oss gå igenom några möjliga sätt som kalkylblad erbjuder.

    Extrahera data före en viss text - LEFT+SEARCH

    När du vill hämta data som föregår en viss text använder du vänster + sökning:

    • VÄNSTER används för att returnera ett visst antal tecken från början av cellerna (från vänster).
    • SÖKNING letar efter vissa tecken/strängar och tar reda på deras position.

    Kombinera dessa - och LEFT ger det antal tecken som SEARCH föreslår.

    Här är ett exempel: hur extraherar man textkoder före varje "ea"?

    Detta är den formel som hjälper dig i liknande fall:

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

    Så här går det till i formeln:

    1. SEARCH("ea",A2) letar efter "ea" i A2 och returnerar positionen där "ea" börjar för varje cell - 10.
    2. Så den tionde positionen är där "e" finns. Men eftersom jag vill ha allt precis före "ea" måste jag subtrahera 1 från den positionen. Annars kommer "e" också att returneras. Så jag får 9 i slutändan.
    3. VÄNSTER tittar på A2 och tar fram de 9 första tecknen.

    Extrahera data efter texten

    Det finns också metoder för att få fram allt efter en viss textsträng. Men den här gången hjälper inte RIGHT, utan REGEXREPLACE tar vid.

    Tips: REGEXREPLACE använder reguljära uttryck. Om du inte är redo att hantera dem finns det en mycket enklare lösning som beskrivs nedan. REGEXREPLACE(text, regular_expression, replacement)

    • text är en sträng eller en cell där du vill göra ändringar.
    • reguljära_uttryck är den teckenkombination som står för den del av texten som du letar efter.
    • ersättning är vad du vill få i stället för det text

    Hur använder du den för att extrahera data efter en viss text - "ea" i mitt exempel?

    Enkelt - med den här formeln:

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

    Låt mig förklara hur den här formeln fungerar exakt:

    1. A2 är en cell som jag extraherar data från.
    2. "(.*)ea(.*)" är mitt reguljära uttryck (eller en mask). Jag letar efter "ea" och sätter alla andra tecken inom parentes. Det finns två grupper av tecken - allt före "ea" är den första gruppen (.*) och allt efter "ea" är den andra (.*). Hela masken sätts inom dubbla citattecken.
    3. "$2" är vad jag vill få fram - den andra gruppen (därav numret 2) från det föregående argumentet.

    Tips: Alla tecken som används i reguljära uttryck samlas på denna speciella sida.

    Extrahera siffror från celler i Google Sheets

    Vad händer om du vill extrahera endast siffror när deras position och vad som kommer före & efter inte spelar någon roll?

    Masker (även kallade reguljära uttryck) hjälper också. Jag tar samma REGEXREPLACE-funktion och ändrar det reguljära uttrycket:

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

    1. A2 är en cell där jag vill hämta siffrorna.
    2. "[^[:digit:]]" är ett reguljärt uttryck som tar med allt utom siffror. ^caret-symbolen är det som gör ett undantag för siffror.
    3. "" ersätter allt utom numeriska tecken med "ingenting". Eller, med andra ord, tar bort dem helt och hållet och lämnar bara kvar siffror i cellerna. Eller, tar ut siffror :)

    Extrahera text utan att ta hänsyn till siffror och andra tecken

    På samma sätt kan du ta bort endast alfabetiska data från Google Sheets-celler. Förkortningen för det reguljära uttrycket som står för text kallas följaktligen - alfa:

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

    Denna formel tar bort allt utom bokstäver (A-Z, a-z) och ersätter det bokstavligen med "ingenting". Eller, för att uttrycka det på ett annat sätt, tar bort endast bokstäver.

    Formelfria sätt att extrahera data från celler i Google Sheets

    Om du letar efter ett enkelt formelfritt sätt att extrahera olika typer av data har du kommit till rätt ställe. Vårt tillägg Power Tools har de rätta verktygen för jobbet.

    Extrahera olika typer av data med hjälp av tillägg till Power Tools

    Det första verktyget jag vill att du ska känna till heter Extract och gör exakt det du letar efter i den här artikeln - det extraherar olika typer av data från Google Sheets-celler.

    Användarvänliga inställningar

    Alla de fall som jag har tagit upp ovan kan inte bara lösas med tillägget. Verktyget är användarvänligt Allt du behöver göra är att välja det intervall som du vill bearbeta och kryssa för de nödvändiga kryssrutorna. Inga formler, inga reguljära uttryck.

    Minns du den andra punkten i den här artikeln om REGEXREPLACE och reguljära uttryck? Här är hur enkelt det är för tillägget:

    Extraalternativ

    Som du kan se finns det några extra alternativ (bara kryssrutor) som du kan snabbt slå på/av för att få det mest exakta resultatet:

    1. Hämta strängar med endast den önskade textfrasen.
    2. Ta ut alla förekomster från varje cell och placera dem i en cell eller i separata kolumner.
    3. Infoga en ny kolumn med resultatet till höger om källdata.
    4. Rensa den extraherade texten från källdata.

    Extrahera olika datatyper

    Power Tools extraherar inte bara data före/efter/mellan vissa textsträngar och de första/sista N-tecknen, utan även följande:

    1. Siffror tillsammans med deras decimaler med decimal- och tusentalseparatorerna intakta:

  • N tecken som börjar från en viss position i en cell.
  • Hyperlänkar (text + länk), URL:er (länk), e-postadresser.
  • Extrahera valfri sträng av data från alla håll och kanter

    Det finns också möjlighet att skapa ett eget exakt mönster och använda det för uttaget. Utdrag genom mask och dess jokertecken - * och ? - gör susen:

    • Du kan till exempel ta fram allt mellan parenteserna med följande mask: (*)
    • Eller skaffa de SKU:er som endast har 5 nummer i sina id-nummer: SKU?????
    • Eller, som jag visar på skärmdumpen nedan, ta bort allt efter varje "ea" i varje cell: ea*

    Extrahera datum och tid från tidsstämplar

    Som en bonus finns det ett mindre verktyg som extraherar datum och tid från tidsstämplar - det heter Split Date & Time.

    Även om den skapades för att dela upp tidsstämplar från början kan den mycket väl hämta en av de önskade enheterna individuellt:

    Markera bara en av kryssrutorna beroende på vad du vill extrahera - datum eller tid - från tidsstämplar i Google Sheets och tryck på Split Den önskade enheten kopieras över till en ny kolumn (eller ersätter de ursprungliga uppgifterna om du också markerar den sista kryssrutan):

    Det här verktyget är också en del av tillägget Power Tools, så när du har installerat det för att hämta data från Google Sheets-celler är det helt klart. Om inte, lämna en kommentar så hjälper vi dig :)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.