Indholdsfortegnelse
Vidste du, at når du fletter to Google-ark, kan du ikke kun opdatere poster i en kolonne, men også trække hele relaterede kolonner og endda rækker, der ikke matcher hinanden? I dag vil jeg vise dig, hvordan det gøres med VLOOKUP, INDEX/MATCH, QUERY-funktioner og tillægsmodulet Merge Sheets.
Sidste gang jeg talte om sammenlægning af 2 Google-ark, delte jeg måder at matche & opdatere data på. Denne gang vil vi stadig opdatere celler, men vi vil også trække andre relaterede kolonner og ikke-matchende rækker ud.
Her er min opslagstabel. Jeg vil tage alle de nødvendige data fra den i dag:
Den er blevet større denne gang: den har to ekstra kolonner med leverandørnavne og deres ratings. Jeg vil opdatere Stock-kolonnen med disse oplysninger i en anden tabel og vil også trække leverandører. Nå, måske også ratings :)
Som sædvanlig vil jeg bruge nogle få funktioner og en særlig tilføjelse til jobbet.
Sammenlægning af Google-ark & tilføj relaterede kolonner ved hjælp af VLOOKUP
Kan du huske Google Sheets VLOOKUP? Jeg brugte det i min tidligere artikel til at matche data og opdatere nogle celler.
Hvis denne funktion stadig skræmmer dig væk, er det på tide at se den i øjnene og lære den én gang for alle, for jeg vil også bruge den i dag :)
Tip. Hvis du leder efter en hurtig løsning, der sparer tid, skal du møde Merge Sheets med det samme.
Lad os lave en hurtig opsummering af formelsyntaksen:
=VLOOKUP(search_key, range, index, [is_sorted])- search_key er det, du leder efter.
- rækkevidde er det sted, du leder efter.
- indeks er nummeret på den kolonne, hvorfra værdien skal returneres.
- [is_sorted] er helt valgfri og angiver, om nøglekolonnen er sorteret.
Tip. Der er en hel vejledning om Google Sheets VLOOKUP på vores blog, så kig gerne efter.
Da jeg sammenlagde to Google-ark og blot opdaterede dataene i kolonnen Lager, brugte jeg denne VLOOKUP-formel:
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,2,FALSE),"""))
IFERROR sikrede sig, at der ikke var fejl i celler uden match, og ARRAYFORMULA behandlede hele kolonnen på én gang.
Så hvilke ændringer skal jeg foretage for også at trække leverandører som en ny kolonne fra opslagstabellen?
Da det er den indeks der fortæller Google Sheets VLOOKUP, hvilken kolonne den skal tage dataene fra, er det sikkert, at det er den, der skal justeres.
Den enkleste måde ville være blot at kopiere formlen til den tilstødende kolonne og øge dens indeks med en (erstatte 2 med 3 ):
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,3,FALSE),"""))
Du skal dog indsætte den samme formel med et andet indeks så mange gange, som du ønsker at få flere kolonner.
Heldigvis er der et bedre alternativ, nemlig ved at oprette arrays. Arrays giver dig mulighed for at kombinere alle de kolonner, du gerne vil trække i ét indeks.
Når du opretter et array i Google Sheets, angiver du værdier eller celle-/intervalreferencer i parenteser, f.eks. ={1, 2, 3} eller ={1; 2; 3}
Anbringelsen af disse poster i et ark afhænger af afgrænseren:
- Hvis du bruger et semikolon, vil tallene fylde forskellige rækker i en kolonne:
Sidstnævnte er præcis, hvad du skal gøre i Google Sheets VLOOKUP-indeksargumentet.
Da jeg fletter Google-ark, opdaterer den anden kolonne og trækker den tredje kolonne, skal jeg oprette et array med disse kolonner: {2, 3} :
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,{2,3},FALSE),"""))
På denne måde matcher én Google Sheets VLOOKUP-formel navne, opdaterer lageroplysninger og tilføjer relaterede leverandører i en tom kolonne ved siden af.
Match & sammenlæg ark og tilføj kolonner med INDEX MATCH
Næste funktion er INDEX MATCH. Disse to funktioner konkurrerer sammen med VLOOKUP, da de omgår dens begrænsninger, når Google-ark skal slås sammen.
Tip. Lær INDEX MATCH til Google Sheets at kende i denne vejledning.
Lad mig starte med at minde dig om formlen, der blot sammenføjer en kolonne baseret på de overenskomster, der findes:
=IFERROR(INDEX(Ark1!$C$1:$C$10,MATCH(B2,Ark1!$B$1:$B$10,0)),""")
I denne formel, Ark1!$C$1:$C$10 er en kolonne med de værdier, du har brug for, når Ark1!$B$1:$B$10 opfylder den samme værdi som i B2 i den aktuelle tabel.
Med disse punkter in mente er det Ark1!$C$1:$C$10 som du skal ændre for ikke blot at flette tabeller og opdatere celler, men også for at tilføje kolonner.
I modsætning til Google Sheets VLOOKUP er der ikke noget smart her. Du skal bare indtaste intervallet med alle de nødvendige kolonner: den kolonne, der skal opdateres, og de andre, der skal tilføjes. I mit tilfælde vil det være Ark1!$C$1:$D$10 :
=IFERROR(INDEX(Ark1!$C$1:$D$10,MATCH(B2,Ark1!$B$1:$B$10,0)),""")
Eller jeg kan udvide området til E10 for at tilføje 2 kolonner, ikke kun én:
=IFERROR(INDEX(Ark1!$C$1:$E$10,MATCH(B2,Ark1!$B$1:$B$10,0)),""")
Bemærk: Disse ekstra poster falder altid i de tilstødende kolonner. Hvis disse kolonner vil have andre værdier, vil formlen ikke overskrive dem, men give dig en #REF-fejl med et tilsvarende hint:
Når du rydder disse celler eller tilføjer nye kolonner til venstre for dem, vises formleresultaterne.
Sammenlæg Google-ark, opdater celler & tilføj relaterede kolonner - alt sammen ved hjælp af QUERY
QUERY er en af de mest effektive funktioner i Google-regneark, så det er ikke overraskende, at jeg i dag vil bruge den til at flette nogle Google-ark, opdatere celler og tilføje ekstra kolonner på samme tid.
Denne funktion adskiller sig fra andre, fordi et af dens argumenter bruger et kommandosprog.
Tip. Hvis du undrer dig over, hvordan du bruger Google Sheets QUERY-funktionen, kan du besøge dette blogindlæg.
Lad os huske formlen, der opdaterer cellerne først:
=IFERROR(QUERY(Sheet1!$A$2:$C$10, "select C where&QUERY!$B2:$B$10&"""),"""),"")
Her ser QUERY på tabellen med de ønskede data i ark1, sammenligner cellerne i kolonne B med min nye tabel og sammenlægger disse ark: trækker data fra kolonne C for hvert match. IFERROR sørger for, at resultatet er fejlfrit.
For at tilføje ekstra kolonner for disse kampe skal du foretage 2 små ændringer i denne formel:
- liste over alle de kolonner, der er nødvendige for Vælg kommando:
...vælg C,D,E...
- udvide området for at se tilsvarende:
...QUERY(Ark1!$A$2:$E$10,...
Her er en komplet formel:
=IFERROR(QUERY(Sheet1!$A$2:$E$10, "select C,D,E where&Sheet4!$B2:$B$10&"""),"""),"")
Den opdaterer lagerkolonnen og trækker 2 ekstra kolonner fra opslagstabellen til denne hovedtabel.
Sådan tilføjes ikke-matchende rækker ved hjælp af FILTER + VLOOKUP
Forestil dig dette: Du fletter 2 Google-ark, opdaterer gamle oplysninger med de nye og får nye kolonner med ekstra relaterede værdier.
Hvad kunne du ellers gøre for at få et fuldstændigt billede af de foreliggende optegnelser?
Måske kan du tilføje ikke-matchende rækker til slutningen af din tabel? På den måde har du alle værdier ét sted: ikke kun matches med de opdaterede relaterede oplysninger, men også ikke-matchende rækker, så de tæller med.
Jeg blev positivt overrasket over, at Google Sheets VLOOKUP kan gøre det. Når den bruges sammen med FILTER-funktionen, fletter den Google-ark sammen og tilføjer også rækker, der ikke matcher hinanden.
Tip. Til sidst vil jeg også vise, hvordan en add-on gør det samme med en enkelt afkrydsningsboks.
Google Sheets FILTER-argumenterne er ret klare:
=FILTER(range, condition1, [condition2, ...])- rækkevidde er de data, du ønsker at filtrere.
- betingelse1 er en kolonne eller en række med et filtreringskriterium.
- kriterium2, kriterium3 osv. er helt valgfri. Brug dem, når du skal bruge flere kriterier.
Tip. Du kan få mere at vide om funktionen FILTER i Google Sheets i dette blogindlæg.
Hvordan kan disse to funktioner så gå sammen og flette Google-ark? FILTER returnerer dataene baseret på de filtreringskriterier, der er oprettet af VLOOKUP.
Se på denne formel:
=FILTER(Sheet1!$A$2:$E$10,ISERROR(VLOOKUP(Sheet1!$B$2:$B$10,$B$2:$C$10,2,FALSE)=1)))
Den scanner to Google-tabeller for match og trækker ikke-matchende rækker fra den ene tabel til den anden:
Lad mig forklare, hvordan det fungerer:
- FILTER går til opslagsarket (en tabel med alle data - Ark1!$A$2:$E$10 ) og bruger VLOOKUP til at få de rigtige rækker.
- VLOOKUP tager navnene på elementerne fra kolonne B i opslagsarket og sammenligner dem med navnene i min aktuelle tabel. Hvis der ikke er nogen overensstemmelse, siger VLOOKUP, at der er en fejl.
- ISERROR markerer hver sådan fejl med 1, hvilket fortæller FILTER, at denne række skal overføres til et andet ark.
Som et resultat heraf trækker formlen 3 ekstra rækker for de bær, der ikke forekommer i min hovedtabel.
Det er ikke så kompliceret, når du først har leget lidt med metoden :)
Men hvis du ikke vil bruge din tid på dette, er der en bedre og hurtigere måde - uden en eneste funktion og formel.
Formel-fri måde at matche & flette data på - Tilføjelse til at flette arkene
Tilføjelsen Merge Sheets omfatter alle 3 muligheder ved sammenlægning af Google-ark:
- den opdaterer relaterede celler på grundlag af de tilsvarende resultater
- tilføjer nye kolonner for disse kampe
- indsætter rækker med ikke-matchende poster
For at undgå enhver forvirring er processen opdelt i 5 enkle trin :
- De to første er der, hvor du Vælg dine borde selv om de er i forskellige regneark.
- På den 3d , skal du Vælg nøglekolonne(r) der skal kontrolleres for match.
- 4. trin lader dig angive de kolonner, der skal opdateres med nye optegnelser eller tilføje fra et ark til et andet:
Det tog et par sekunder, før jeg kunne se resultatet:
Installer Merge Sheets fra Google Sheets-butikken, og du vil se, at den behandler større tabeller lige så hurtigt. Takket være Merge Sheets får du mere tid til vigtige ting.
Jeg vil også efterlade denne 3-minutters demovideo for at hjælpe dig med at beslutte dig :)
Regneark med eksempler på formler
Sammenlæg Google-ark, tilføj relaterede kolonner & ikke-matchende rækker - formeleksempler (lav en kopi af dette regneark)