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