Just nu i M3-nätverket
Gå till innehåll
dj1608

Summera data från alla kalkylblad

Rekommendera Poster

Hej,

 

Jag har en arbetsbok med flera kalkylblad med resultaträkning i varje kalkylblad. Jag behöver summera alla kalkylblad i en total resultaträkning.

 

Utmaningen består i att jag behöver göra detta för flera arbetsböcker och antalet kalkylblad kan variera från arbetsbok till arbetsbok. Även namnen på kalkylbladen varierar, förutom att alla börjar med samma term. Går det att på något sätt få excel att summera samma cell i varje kalkylblad till summeringskalkylbladet utan att behöva skriva alla kalkylbladsnamn? Min förhoppning om att man kan använda * eller något liknande i summeringsformlen.

 

På förhand stort tack!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

I en 3D formel behöver du bara ange första och sista blad. Det här ger alltså summan av cell A1 i Blad2 till och med blad6  (inklusive mellanliggande böcker)

=SUMMA(Blad2:Blad6!A1)

Men, sen skiter det sig... Tyvärr verkar det vara knepigt att skapa en 3D formel genom att slå ihop namn osv. Dessutom är det svårt att få fram antal blad, böcker osv. I VBA skulle du kunna hänvisa till första och sista bok, men inte i formel-excel.

 

Den enda metod jag kan tänka mig är att du har fasta namn på första/sista blad som skall ingå i varje arbetsbok

=SUMMA(FörstaKvartalet:SistaKvartalet!A1)

Inte helt realistiskt kanske. Men tänk

=SUMMA(Intro:Rättningar!A1)

eller liknande.

 

Om det alltid är en siffra i slutet så kan du även skapa formler (Inte 3D) med hjälp av radnummer.  Skriv in den här formeln på rad1

=SUMMA(INDIREKT(SAMMANFOGA("Blad";RAD();"!A1")))

när du kopierar ner formeln så ändras adressen till Blad1, Blad2, Blad3,   osv..

sen kan du summera den kolumnen. Så här om du vill slippa felmeddelanden.

=OMFEL(SUMMA(INDIREKT(SAMMANFOGA("Blad";RAD();"!A1")));"") 

 

 

 

En annan variant är att skapa en egen "formel" med hjälp av VBA (makron). men det kan bli riktigt träligt. Inget jag rekommenderar. Exempel

 

Function SummeraBlad(StartbladNR As Integer, Startcell As String)


Dim sFörstaBlad As String
Dim sSistaBlad As String
Dim Adress As String



sFörstaBlad = ActiveWorkbook.Worksheets(StartbladNR).Name
sSistaBlad = ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count).Name

Adress = sFörstaBlad & ":" & sSistaBlad & "!" & Startcell
SummeraBlad = Application.Evaluate("SUM(" & Adress & ")")

End Function

med formeln 

=SummeraBlad(2;"A1")

Skulle du summera allt i A1 från det andra bladet till det sista

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ibland kan det vara bra att se över sin struktur.

Tänk omvänt istället, en tabell och flera rapporter. Eller anpassningsbar rapport som drar data ur din/dina få tabeller, som i en databas.  Då brukar Excel må bra.

 

3D-formler fungerar om bladen ser exakt lika ut, samma typ av data i cell A10 genom alla blad.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tusen tack för de många olika lösningsförslag. Jag ska se om jag inte hittar något som går att använda. Jag tror t.ex. att ett extra kalkylblad till en början och en i slutet skulle kunna fungera :-)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×