Funkce součet podmíněný barvou

Ozval se mi jeden z vás čtenářů těchto stránek, že se trápí s vytvořením funkce, která bude sčítat nějakou oblast buněk, když bude shoda s určitou barvou pozadí (nebo barvou písma). Funkci jsem vytvořil za pár minut, je užitečná a proto jí dávám i ostatním čtenářům k dispozici. Zkopírujte si funkci do modulu a funkce se objeví v Excelu v průvodci funkcemi fx v kategorii Vlastní. Funkce má 2 povinné parametry oblast (souvislá oblast sčítaných buněk) a obarvenaBunka (bunka má stejnou barvu pozadí jako mají buňky oblasti které chceme sečíst).  Funkce, která by sčítala podle barvy písma by se mohla jmenovat SumIfBarvaPisma, měla by stejné parametry a v definici funkce bychom místo objektu Interior použili objekt Font (červené písmo).

Definice funkce vypadá následovně:

Function SumIfBarvaPozadi(oblast, obarvenaBunka)

  'funkce vraci soucet cisel v souvisle oblasti,

  'kdyz maji stejnou barvu pozadi jako obarvenaBunka

 

  'funkce se bude prepocitavat

  Application.Volatile True

 

  'zjisteni barvy pozadi

  barva = Range(obarvenaBunka.Address).Interior.ColorIndex

 

  'pocet bunek oblasti

  pocetBunek = Range(oblast.Address).Cells.Count

 

  'cykl pres vsechny bunky oblasti

  For Each Cell In Range(oblast.Address)

    'kdyz barva odpovida

    If Cell.Interior.ColorIndex = barva Then

      'pricti obsah bunky Cell do promenne soucet

      soucet = soucet + Cell

    End If

  Next

 

  'navratova hodnota funkce

  SumIfBarvaPozadi = soucet

End Function

Zpět na hlavní stránku