Slå ihop 2 Google-ark och uppdatera data baserat på gemensamma poster

  • Dela Detta
Michael Brown

Dagens blogginlägg innehåller alla sätt att slå ihop två Google Sheets. Du kommer att använda VLOOKUP, INDEX/MATCH, QUERY och tillägget Merge Sheets för att uppdatera celler i ett ark med poster från ett annat baserat på matchningar i gemensamma kolumner.

    Slå ihop Google-ark med hjälp av VLOOKUP-funktionen

    Det första du kanske vänder dig till när du behöver matcha och sammanfoga två Google-ark är VLOOKUP-funktionen.

    Syntax & användning

    Den här funktionen söker i en kolumn som du anger efter ett visst nyckelvärde och hämtar en av de relaterade posterna från samma rad till en annan tabell eller ett annat ark.

    Även om Google Sheets VLOOKUP vanligtvis anses vara en av de svåra funktionerna är den faktiskt ganska enkel och till och med lätt när du väl har lärt känna den.

    Låt oss ta en snabb titt på dess komponenter:

    =VLOOKUP(search_key, range, index, [is_sorted])
    • Sök_nyckel är det nyckelvärde som du letar efter. Det kan vara en textsträng, ett nummer eller en cellreferens.
    • sortiment är den grupp av celler (eller en tabell) där du ska leta efter den Sök_nyckel och var du ska hämta de relaterade posterna från.

      Observera att VLOOKUP i Google Sheets alltid söker igenom den första kolumnen i sortiment för Sök_nyckel .

    • index är numret på kolumnen inom den sortiment var du vill hämta data från.

      Om du t.ex. vill söka i intervallet A2:E20 och det är kolumn E som du vill hämta data från, ange 5. Men om du vill söka i intervallet D2:E20 måste du ange 2 för att hämta poster från kolumn E.

    • [is_sorted] är det enda argumentet som du kan utelämna. Det används för att ange om kolumnen med nyckelvärden är sorterad (TRUE) eller inte (FALSE). Om TRUE används funktionen med den närmaste matchningen, om FALSE med en fullständig matchning. Om TRUE utelämnas används TRUE som standard.

    Tips: Vi har en detaljerad guide om VLOOKUP i Google Sheets. Kolla in den för att lära dig mer om funktionen, dess egenheter & begränsningar och få fler formelexempel.

    Med dessa argument i åtanke kan vi använda VLOOKUP för att slå ihop två Google-ark.

    Antag att jag har en liten tabell med bär och deras ID i blad 2. Lagertillgången är dock okänd:

    Vi kallar den här tabellen för huvudtabellen eftersom mitt mål är att fylla den.

    Det finns också en annan tabell i Sheet1 med alla data på plats, inklusive lagertillgänglighet:

    Jag kallar det för uppslagstabellen eftersom jag kommer att titta in i den för att få fram uppgifterna.

    Jag kommer att använda Google Sheets VLOOKUP-funktionen för att slå samman dessa två blad. Funktionen kommer att matcha bär i båda tabellerna och hämta motsvarande "lagerinformation" från uppslaget till huvudtabellen.

    =VLOOKUP(B2,Sheet1!$B$2:$C$10,2,FALSE)

    Så här ser du hur formeln sammanfogar två Google-ark exakt:

    1. Den letar efter värdet från B2 (huvudark) i kolumn B på ark 1 (uppslagsark).

      Kom ihåg att VLOOKUP söker igenom den första kolumnen i det angivna intervallet - Blad1!$B$2:$C$10 .

      Observera: Jag använder absoluta referenser för intervallet eftersom jag kopierar formeln nedåt i kolumnen och därför måste intervallet vara detsamma i varje rad så att resultatet inte bryts.

    2. FALSE i slutet säger att data i kolumn B (i uppslagsbladet) inte är sorterade så att endast exakta träffar kommer att beaktas.
    3. När det finns en matchning hämtar Google Sheets VLOOKUP den relaterade posten från den andra kolumnen i intervallet (kolumn C).

    Dölj fel som returneras av VLOOKUP i Google Sheets - IFERROR

    Men hur är det med #N/A-felen?

    Du ser dem i de rader där bär inte har några matchningar i ett annat ark och där det inte finns något att returnera. Lyckligtvis finns det ett sätt att hålla sådana celler tomma i stället.

    Du behöver bara omsluta din VLOOKUP i Google Sheets med IFERROR:

    =IFERROR(VLOOKUP(B2,Sheet1!$B$2:$C$10,2,FALSE),"")

    Tips: Fånga upp och åtgärda andra fel som Google Sheets VLOOKUP kan returnera med hjälp av lösningarna i den här guiden.

    Matcha & uppdatera poster för hela kolumnen på en gång - ArrayFormula

    En sak till som jag vill nämna är hur du matchar och sammanfogar Google Sheets-data för hela kolumnen på en gång.

    Inget märkvärdigt här, bara en funktion till - ArrayFormula.

    Byt helt enkelt ut din nyckelpost med en cell i Google Sheets VLOOKUP mot hela kolumnen och placera hela formeln i ArrayFormula:

    =ArrayFormula(IFERROR(VLOOKUP(B2:B10,Sheet1!$B$2:$C$10,2,FALSE),"")))

    På så sätt behöver du inte kopiera formeln ner i kolumnen. ArrayFormula returnerar rätt resultat till varje cell direkt.

    Även om VLOOKUP i Google Sheets är perfekt för sådana enkla uppgifter har den vissa begränsningar. Här är en av nackdelarna: den kan inte titta till vänster. Oavsett vilket intervall du anger, söker den alltid i den första kolumnen.

    Om du behöver slå ihop två Google-ark och ta fram ID:n (data i första kolumnen) baserat på bär (andra kolumnen) hjälper inte VLOOKUP, utan du kan bara inte skapa en korrekt formel.

    I sådana fall kommer INDEX MATCH för Google Sheets in i spelet.

    Matcha & sammanfoga Google-ark med hjälp av INDEX MATCH duo

    INDEX MATCH, eller snarare INDEX & MATCH, är egentligen två olika Google Sheets-funktioner, men när de används tillsammans är det som en VLOOKUP på nästa nivå.

    Ja, de sammanfogar även Google-ark: uppdatera celler i en tabell med poster från en annan tabell baserat på gemensamma nyckelposter.

    Men de gör det mycket bättre eftersom de ignorerar alla de begränsningar som VLOOKUP har.

    Jag kommer inte att ta upp alla grunderna i dag eftersom jag har gjort det i det här blogginlägget. Men jag ska ge dig några exempel på INDEX MATCH-formler så att du kan se hur de fungerar direkt i Google-kalkylblad. Jag kommer att använda samma exempeltabeller som ovan.

    INDEX MATCH i praktiken i Google Sheets

    Låt oss först slå ihop dessa Google-ark och uppdatera lagertillgängligheten för alla matchande bär:

    =INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0))

    Hur fungerar INDEX & MATCH när de används tillsammans på detta sätt?

    1. MATCH tittar på B2 och söker efter exakt samma post i kolumn B på blad 1. När den hittats returnerar den numret på raden som innehåller värdet - 10 i mitt fall.
    2. INDEX går också till den tionde raden på blad 1, men tar värdet från en annan kolumn - C.

    Nu ska vi testa INDEX MATCH mot det som Google Sheets VLOOKUP inte kan göra - slå ihop ark och uppdatera den vänstra kolumnen med de nödvändiga ID-numren:

    =INDEX(Sheet1!$A$2:$A$10,MATCH(B2,Sheet1!$B$2:$B$10,0))

    Enkelt och lätt :)

    Hantera fel som returneras av INDEX MATCH i Google Sheets

    Låt oss gå vidare och bli av med felen i celler utan matchningar. IFERROR hjälper dig igen. Sätt bara ditt Google Sheets INDEX MATCH som första argument.

    Exempel 1.

    =IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),""")

    Exempel 2.

    =IFERROR(INDEX(Sheet1!$A$2:$A$10,MATCH(B2,Sheet1!$B$2:$B$10,0)),""")

    Hur sammanfogar du dessa Google-ark med hjälp av INDEX MATCH och uppdaterar alla celler i hela kolumnen på en gång?

    Det finns ett litet problem: ArrayFormula fungerar inte med dessa två.

    Du måste kopiera INDEX MATCH-formeln ner i kolumnen eller använda Google Sheets QUERY-funktionen som ett alternativ.

    Slå ihop Google-ark och uppdatera celler med QUERY

    Google Sheets QUERY är den mest kraftfulla funktionen i kalkylblad. Det är därför inte konstigt att det finns ett sätt att slå ihop tabeller - matcha & slå ihop värden från olika ark.

    =QUERY(data, fråga, [rubriker])

    Tips: Om du aldrig har använt Google Sheets QUERY tidigare kan du med den här handledningen lära dig mer om dess märkliga språk.

    Hur ska QUERY-formeln se ut för att uppdatera Lager kolumnen med de faktiska uppgifterna?

    =QUERY(Sheet1!$A$2:$C$10, "välj C där&Sheet4!$B2:$B$10&"""")

    • Google Sheets QUERY tittar på mitt uppslagsblad (Sheet1 med de poster som jag vill överföra till min huvudtabell).
    • och returnerar alla celler från kolumn C där kolumn B matchar bär i min huvudtabell.

    Låt mig bara ta bort felen för celler utan matchningar:

    =IFERROR(QUERY(Sheet1!$A$2:$C$10, "select C where&Sheet4!$B2:$B$10&"""),""),"")

    Det är bättre :)

    Slå ihop tabeller från olika Google-kalkylblad - IMPORTRANGE-funktionen

    Det finns ytterligare en funktion som jag vill nämna, och den är viktig eftersom den gör att du kan slå ihop ark som finns i olika Google-kalkylblad (filer).

    Funktionen kallas IMPORTRANGE:

    =IMPORTRANGE("spreadsheet_url", "range_string")
    • den förstnämnda länken är länken till kalkylbladet där du hämtar data från
    • den senare går till ark & det intervall som du vill ta från det kalkylbladet

    Observera: Jag rekommenderar starkt att du går igenom Google-dokumenten om denna funktion så att du inte missar någon viktig nyans i dess arbete.

    Tänk dig att ditt uppslagsblad (med referensdata) finns i kalkylblad 2 (även kallat uppslagsbladet) och att ditt huvudark finns i kalkylblad 1 (huvudkalkylbladet).

    Observera: För att IMPORTRANGE ska fungera måste du ansluta båda filerna. Och även om Google Sheet föreslår en knapp för detta direkt efter att du skrivit din formel i en cell och tryckt på Gå in på För formlerna nedan kan du behöva göra det i förväg. Den här steg-för-steg-guiden hjälper dig.

    Nedan finns exempel på hur du sammanfogar Google-ark från olika filer med hjälp av IMPORTRANGE med varje funktion som du lärt dig tidigare idag.

    Exempel 1. IMPORTRANGE + VLOOKUP

    Använd IMPORTRAGE som ett intervall i VLOOKUP för att slå ihop två separata Google-kalkylblad:

    =ArrayFormula(IFERROR(VLOOKUP(B2:B10,IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$C$10"),2,FALSE),""))

    Exempel 2. IMPORTRANGE + INDEX MATCH

    När det gäller INDEX MATCH & IMPORTRANGE blir formeln mer omfattande eftersom du måste hänvisa till ett annat kalkylblad två gånger: som ett intervall för INDEX och som ett intervall för MATCH:

    =IFERROR(INDEX(IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$1:$A$10"),MATCH(B2,IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$B$10"),0)),"")

    Exempel 3. IMPORTRANGE + QUERY

    Denna kombination av formler är min personliga favorit. De kan hantera nästan allt i kalkylblad när de används tillsammans. Att slå ihop Google-ark från separata kalkylblad är inget undantag.

    =IFERROR(QUERY(IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$2:$C$10"), "select Col3 where&QUERY!$B2:$B$10&"""),""")

    Puh!

    Det är allt om funktioner & formler.

    Du kan välja vilken funktion som helst & skapa din egen formel med hjälp av exemplen ovan...

    eller...

    ...prova ett specialverktyg som sammanfogar Google-ark åt dig! ;)

    Formelfritt sätt att matcha & sammanföra data - tilläggsmodul för Google Sheets för sammanslagning av ark

    Om du inte har tid att skapa eller lära dig formler, eller om du bara letar efter det enklaste sättet att sammanföra data baserat på gemensamma poster, är Merge Sheets perfekt.

    Allt du behöver göra är att kryssa i rutorna i 5 användarvänliga steg:

    1. välj ditt huvudark
    2. välj ditt uppslagsblad
    3. Markera nyckelkolumner (de som innehåller poster som ska matchas) med kryssrutor.
    4. välja de kolumner som ska uppdateras:

  • justera ytterligare alternativ, t.ex. markera uppdaterade poster med färg eller i en statuskolumn osv.
  • Det finns till och med en möjlighet att spara alla valda alternativ i ett scenario och återanvända det när du behöver det:

    Titta på den här 3-minuters demovideon för att se hur det fungerar:

    Jag uppmuntrar dig att installera dina Merge Sheets från Google Sheets-butiken och följa de här instruktionerna för att försöka uppdatera din egen tabell med information från ett annat ark.

    Kalkylblad med exempel på formler

    Slå ihop Google ark & uppdatera data - exempel på formler (gör en kopia av filen)

    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.