VSTAK: saml månedsarkene til én liste med én formel

Table of contents
- Først: navn og version
- 1. Stabl to ark
- 2. Alle månederne på én gang
- 3. Fjern de tomme rækker
- 4. Overskrifter øverst
- 5. Sortér efter dato
- Og HSTAK?
- De to fejl du vil møde
- VSTAK eller Power Query?
- Prøv det selv
- Til sidst
Projektmappen har et ark for hver måned: Jan, Feb, Mar og så videre. Det er overskueligt, lige indtil nogen spørger, hvad I har brugt i alt på rejser i år.
Så markerer du rækkerne i januar, kopierer dem over i et samlet ark, gør det samme for februar, og når du er nået til september, har nogen rettet et beløb i marts.
VSTAK samler arkene til én liste med en formel, der følger med, når der kommer nye rækker eller bliver rettet i et af arkene. Her får du de fem greb, du skal bruge, og de to fejl, du typisk møder undervejs. Regn med tyve minutter.
Først: navn og version
Navnene: Funktionen hedder VSTAK i dansk Excel og VSTACK i engelsk. Søsterfunktionen, der lægger data ved siden af hinanden i stedet for under hinanden, hedder HSTAK (engelsk: HSTACK).
Versionen: Begge findes i Excel til Microsoft 365 og Excel 2024. I Excel 2021 og ældre får du #NAVN? (engelsk Excel: #NAME?), og så er det versionen, ikke formlen, der er problemet.
Opsætningen: Eksemplerne bruger seks månedsark, Jan til Jun, hvor hvert ark har de samme fire kolonner i samme rækkefølge: Dato, Afdeling, Kategori og Beløb. Det er det vigtigste krav. Står kolonnerne forskelligt på arkene, bliver listen forkert.
1. Stabl to ark
=VSTAK(Jan!A2:D30;Feb!A2:D30)
Hvad den gør: Tager rækkerne fra januar og lægger februars rækker nedenunder. Resultatet løber selv ned i cellerne under formlen, så du skriver den kun i én celle.
Hvis datoerne bliver til tal: En formel tager værdierne med, men ikke formateringen. Står der 46023 i stedet for en dato, så markér kolonnen og giv den datoformat. Det skal kun gøres én gang.
Det virker, men med tolv måneder bliver formlen lang. Det løser næste greb.
2. Alle månederne på én gang
=VSTAK(Jan:Jun!A2:D30)
Hvad Jan:Jun! betyder: Det er en 3D-reference. Den peger på det samme område på alle ark fra Jan til Jun, i den rækkefølge fanerne står.
Sådan laver du den uden at skrive den: Skriv =VSTAK( i cellen. Klik på fanen Jan, hold Skift nede, og klik på fanen Jun. Markér nu området A2:D30, og tryk Enter.
Det skal du vide om rækkefølgen: Excel tæller alle ark med, der står mellem Jan og Jun i fanebjælken. Lægger du et nyt ark Jul ind efter Jun, kommer det ikke med. Lægger du et notatark ind mellem Mar og Apr, kommer det med.
Et greb der gør det robust: Lav to tomme ark, Start og Slut, og læg alle månedsarkene imellem dem. Skriv formlen som =VSTAK(Start:Slut!A2:D30). Så kommer et nyt månedsark med, bare du trækker fanen ind mellem Start og Slut. De to tomme ark giver nogle rækker med nuller, men dem fjerner du med næste greb.
3. Fjern de tomme rækker
Har januar kun 18 rækker, og du har bedt om A2:D30, får du 12 rækker med nuller. VSTAK viser tomme celler som 0.
=FILTRER(VSTAK(Jan:Jun!A2:D30);VSTAK(Jan:Jun!A2:A30)<>"")
Hvad den gør: Den første VSTAK samler alle rækkerne. Den anden samler kun datokolonnen, og betingelsen <>"" betyder "ikke tom". FILTRER beholder kun de rækker, hvor der står en dato.
Gør området rigeligt stort, for eksempel A2:D500. Så er der plads til nye rækker, og de tomme bliver alligevel filtreret fra.
4. Overskrifter øverst
=VSTAK(Jan!A1:D1;FILTRER(VSTAK(Jan:Jun!A2:D500);VSTAK(Jan:Jun!A2:A500)<>""))
Overskrifterne fra januar kommer øverst, og alle rækkerne nedenunder. Nu er listen klar til at blive brugt i en pivottabel eller i SUM.HVISER.
5. Sortér efter dato
=SORTER(FILTRER(VSTAK(Jan:Jun!A2:D500);VSTAK(Jan:Jun!A2:A500)<>"");1)
Tallet 1 til sidst betyder: sortér efter første kolonne, altså datoen. Tilføj ;-1 efter 1-tallet, så slutningen bliver ;1;-1), hvis du vil have de nyeste øverst.
Og HSTAK?
HSTAK gør det samme, bare vandret. Den er praktisk, når du vil have kolonnerne i en anden rækkefølge end i kilden:
=HSTAK(Jan!D2:D30;Jan!A2:A30)
Her får du beløbet først og datoen bagefter. Det kan også bruges til at sætte en ekstra kolonne på en liste, du har samlet med VSTAK.
De to fejl du vil møde
#I/T i nogle af cellerne
Hvad den betyder: Engelsk Excel skriver #N/A. Et af områderne er smallere end de andre, så Excel mangler noget at sætte i de sidste kolonner.
Typisk årsag: Et ark har en kolonne mindre, eller du har markeret A2:C30 på ét ark og A2:D30 på et andet.
Sådan retter du: Ret områderne, så de er lige brede. Er det med vilje, kan du pakke formlen ind i HVIS.FEJL: =HVIS.FEJL(VSTAK(Jan!A2:D30;Feb!A2:C30);"").
#OVERLØB!
Hvad den betyder: Listen vil gerne løbe ned, men der står noget i vejen. Du kan også møde den som #SPILL!.
Sådan retter du: Klik på fejlen, og vælg Markér blokerende celler. Slet det, der står i vejen. Har du skrevet formlen inde i en Excel-tabel, så flyt den ud, for overløb er ikke tilladt i tabeller.
VSTAK eller Power Query?
VSTAK er det rigtige, når arkene ligger i samme projektmappe, og datamængden er overskuelig. Formlen er synlig, du kan følge den, og den opdaterer sig med det samme.
Power Query er det rigtige, når data ligger i mange forskellige filer, for eksempel en mappe med et udtræk pr. måned, eller når der er titusindvis af rækker. Der skal du bare trykke Opdater, når der kommer en ny fil.
Prøv det selv
Jeg har lavet en Excel-fil med seks månedsark, Jan til Jun, med udgifter fordelt på afdelinger og kategorier. Der er forskelligt antal rækker på hvert ark, så du møder de tomme rækker. På opgavearket står fem opgaver, der følger afsnittene ovenfor, og løsningsarket viser formlerne og det resultat, du skal ende med.
Hent øvelsesfilen (Excel, xlsx)
Til sidst
Den største gevinst ved VSTAK er ikke, at du sparer kopieringen. Det er, at det samlede ark altid viser det samme som månedsarkene, så du aldrig skal tvivle på, om oversigten er den nyeste.
Hos KontorAkademiet tager jeg en time om måneden med den slags praktiske greb. Ikke i et bestemt program, men i det du sidder med til daglig, så du og dine kollegaer får timerne tilbage lidt efter lidt.