Součet hodnot z více listů (Suma přes listy)

Pro informace o výuce Excelu klikněte zde

Dotaz:

Ahojte, potřeboval bych sečíst cca 200 excelovských tabulek. Při vkládání vzorců na sečteni to na mne po 50-tabulce křičí, že mám dlouhý vzorec. Máte tip jak na to?
Dik předem za nakopnuti.
PV

 

Možnosti řešení

1. použití funkce SUMA

Pro získání sumy z listů je možno použít tento vzorec =SUMA(List1:List5!B5)

Tento vzorec vrací sumu hodnot v buňce B5 pro listy List1, List5 a všechny listy mezi nimi.

Ale pokud přidáte nebo přesunete list před List1 nebo za List5, tak se vzorec automaticky nezmění a je třeba ho upravit ručně.

2. použití vlastní funkce VBA

Tato funkce přebírá jeden parametr (jednu buňku) a vrátí sumu pro všechny listy v sešitu.


Function SumaPresListy(cell)
Dim dblVal As Double
Dim strAdr As String
Dim Wks As Object
Application.Volatile
strAdr = cell.Range("A1").Address
dblVal = 0
For Each Wks In cell.Parent.Parent.Worksheets
   If Wks.Name = cell.Parent.Name And _
      strAdr = Application.Caller.Address Then
      'zabránění cyklického odkazu tj. jesli kontrolovaná buňka _
      není ta, která obsahuje funkci. V takovém případě je vynechána
   Else
      If WorksheetFunction.IsNumber(Wks.Range(strAdr)) Then
         dblVal = dblVal + Wks.Range(strAdr).Value
      End If
   End If
Next Wks
SumaPresListy = dblVal
End Function

Potom stačí zadat vzorec = SumaPresListy(B5)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *