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)

4 Comments

  1. Dobrý den, mám dotaz, potřebuji sečíst hodnoty z více listů, ale hodnoty neodpovídají stejné pozici v řádcích. Ke každé hodně je přiřazeny kód, pomocí kterého bych chtěla data sečíst. Poradíte prosím, jakou funkci použít.

Napsat komentář

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