Slå ihop tabeller i Excel med VSTACK och HSTACK

Slå ihop Exceltabeller med dynamiska formler!

I senaste versionerna av Excel finns ett helt gäng av nya, smarta och härliga så kallade matrisfunktioner. Två av dessa är funktionerna VSTACK och HSTACK. De används för att sätta samman två eller flera matriser (områden) till en matris. Antingen radvis (VSTACK) eller kolumnvis (HSTACK). Matriserna som används kan vara cellområden, Exceltabeller, namngivna områden eller egen manuellt inmatad text. Det går även att kombinera dessa två funktioner med varandra och bygga upp ett eget resultat av data.

Matriser som används till VSTACK och HSTACK kan hämtas från olika blad i en arbetsbok. Det går även att hämta från andra arbetsböcker men då får du en uppmaning om att uppdatera länkar när arbetsboken öppnas. Om matriserna är i form av Exceltabeller som används behöver dessa filer vara öppna samtidigt som du använder resultatfilen. Smidigast är att använda matriser från samma fil.

I exemplet ser du tre tabeller med data. Du vill nu skapa en totaltabell med innehållet från alla tre tabellerna. Självklart ska du kunna ta bort och lägga till data i dessa tabeller, samtidigt som totaltabellen uppdateras.

En bild som visar bord Automatiskt genererad beskrivning

I cell F4 använder du funktionen VSTACK för att ”stapla” data från de olika matriserna (tabellerna). Varje funktionsargument (funktionsdel) är alltså ett cellområde eller tabellområde som du vill addera till totaltabellen. Exceltabeller i exemplet heter tbl_Region1, tbl_Region2 och tbl_Region3. Formeln så enkel som:

=VSTACK(tbl_Region1;tbl_Region2;tbl_Region3)

Eftersom det är en matrisfunktion som skrivs i cell F4, spiller all data automatiskt ut i cellerna nedan och till höger från denna cell. Denna tabell uppdateras vid eventuella förändringar i de tre källtabellerna.

Tabellrubriker

När du använder VSTACK i exemplet ovan ser du att tabellrubrikerna inte inkluderas i totaltabellen. Ett enkelt sätt att lösa detta är att manuellt lägga till tre celler ovanför tabellen med rubrikernas text. Dock kan du även utnyttja funktionen HSTACK tillsammans med din VSTACK-funktion för att även få med rubrikerna. VSTACK-funktionens olika matriser hamnar i den ordning i totaltabellen som man lägger till dem i funktionen. Genom att hämta rubrikerna (som är horisontellt ordnade) med HSTACK och lägga dem som första matris i din VSTACK-funktion, kommer de att hamna överst 😉. Funktionen blir alltså följande:

=VSTACK(HSTACK(tbl_Region1[#Rubriker]);tbl_Region1;tbl_Region2;tbl_Region3)

ENG: =VSTACK(HSTACK(tbl_Region1[#Headers]);tbl_Region1;tbl_Region2;tbl_Region3)

En bild som visar bord Automatiskt genererad beskrivning

Detta är ett enkelt och snabbt sätt – att med formler – skapa en dynamisk totaltabell utifrån flera cellområden eller tabeller. Behöver du skapa en sortering kan funktioner som SORTERA [SORT] och SORTERA.EFTER [SORTBY] användas. För att sortera matrisformeln ovan efter kolumnen Artikel i stigande behöver formeln modifieras enligt följande:

=VSTACK(HSTACK(tbl_Region1[#Rubriker]);
SORTERA(VSTACK(tbl_Region1;tbl_Region2;tbl_Region3);2;1))

ENG: =VSTACK(HSTACK(tbl_Region1[#Headers]);
SORT(VSTACK(tbl_Region1;tbl_Region2;tbl_Region3);2;1))

Skapa en totalsumma längst ner

Eftersom tabellen är dynamisk kan man inte bara skapa en manuell summering nedanför data. Då finns risken att tabellen utökas och ”krockar” med summeringscellen. Med hjälp av ytterligare en HSTACK-funktion i slutet kan du skapa en dynamisk totalsummarad enligt formeln nedan.

=VSTACK(HSTACK(tbl_Region1[#Rubriker]); SORTERA(VSTACK(tbl_Region1;tbl_Region2;tbl_Region3);2;1); HSTACK(”Totalsumma”;””; SUMMA(tbl_Region1[Ordersumma];tbl_Region2[Ordersumma];tbl_Region3[Ordersumma])))

ENG: =VSTACK(HSTACK(tbl_Region1[#Headers]); SORT(VSTACK(tbl_Region1;tbl_Region2;tbl_Region3);2;1); HSTACK(”Totalsumma”;””; SUM(tbl_Region1[Ordersumma];tbl_Region2[Ordersumma];tbl_Region3[Ordersumma])))

En bild som visar bord Automatiskt genererad beskrivning

Sugen på mycket mer om matrisfunktioner? Hoppa på vår omtyckta tvådagarskurs Excel Master Class. Läs mer och boka på www.infocell.se. Givetvis finns många avsnitt om dessa funktioner i våra e-kurser på www.officekurs.se.

Power Query som alternativ

Är huvudsyftet med totaltabellen att den ska användas för att analysera data med varierad sortering/filtrering eller vara underlag för pivottabell, så rekommenderar vi att du använder Power Query för att slå ihop tabellerna och skapa en totaltabell. Metoder för att göra detta med Power Query finns gott om i vår e-kurs i Power Query på www.officekurs.se eller i vår lärarledda kurs i Power Query & Power Pivot (se www.infocell.se).

Du gillar kanske också...

2 svar

  1. Raymond Bergmark skriver:

    Supersnyggt med rubrik och summa i samma funktion!

Börja prenumerera idag!

Ta del av tips & tricks i Excel och Office en gång i månaden helt kostnadsfritt.

Grattis! Du kommer nu att få Excelbrevet varje månad helt gratis.