
Obecný vzorec
=SUMPRODUCT(--(MONTH(birthday)=number))
souhrn
Chcete-li spočítat počet narozenin v seznamu, můžete použít vzorec založený na funkcích SUMPRODUCT a MONTH. V zobrazeném příkladu obsahuje E5 tento vzorec:
=SUMPRODUCT(--(MONTH(birthday)=D5))
Tento vzorec počítá narozeniny v lednu (protože D5 obsahuje 1) v pojmenovaném rozsahu „narozeniny“ (B5: B104).
Vysvětlení
Myslíte si, že můžete použít funkci COUNTIF k počítání narozenin, ale problém spočívá v tom, že funkce COUNTIF funguje pouze s rozsahy a nedovolí vám použít něco jako MĚSÍC k extrakci čísla měsíce z dat. Místo toho tedy používáme SUMPRODUCT.
Uvnitř SUMPRODUCT máme tento výraz:
MONTH(birthday)=D5)
Funkce MĚSÍC extrahuje měsíc pro každé datum v pojmenovaném rozsahu „narozeniny“ a porovnává se s hodnotou v D5, která je 1. Výsledkem je pole hodnot PRAVDA / NEPRAVDA, kde každá PRAVDA představuje datum, kdy měsíc = 1.
Hodnoty TRUE FALSE jsou poté převedeny na jedničky a nuly s dvojitým záporem (-). SUMPRODUCT poté sečte tato čísla a vrátí konečný výsledek.
Nakládání s prázdnými buňkami
Pokud máte v seznamu narozenin prázdné buňky, získáte nesprávné výsledky, protože vrátí MĚSÍC (0) 1. Chcete-li zpracovat prázdné buňky, můžete upravit vzorec následujícím způsobem:
=SUMPRODUCT((MONTH(birthdays)=D5)*(birthdays""))
Vynásobením výrazem (narozeniny "") se efektivně zruší měsíční hodnoty pro prázdné buňky. Na stránce SUMPRODUCT najdete další informace o tom, jak uvnitř SUMPRODUCT fungují logické výrazy.
Řešení kontingenčních tabulek
Kontingenční tabulka je vynikajícím řešením i pro tento problém.