Všeobecný vzorec
=SUMPRODUCT(--(MONTH(birthday)=number))
Zhrnutie
Ak chcete spočítať počet narodenín v zozname, môžete použiť vzorec založený na funkciách SUMPRODUCT a MONTH. V zobrazenom príklade obsahuje E5 tento vzorec:
=SUMPRODUCT(--(MONTH(birthday)=D5))
Tento vzorec počíta narodeniny v januári (pretože D5 obsahuje 1) v pomenovanom rozsahu „narodeniny“ (B5: B104).
Vysvetlenie
Mysleli by ste si, že na spočítanie narodenín môžete použiť funkciu COUNTIF, ale problém je, že funkcia COUNTIF funguje iba s rozsahmi a nedovolí vám použiť niečo ako MESIAC na extrahovanie iba čísla mesiaca z dátumov. Namiesto toho teda používame SUMPRODUCT.
Vo vnútri SUMPRODUCT máme tento výraz:
MONTH(birthday)=D5)
Funkcia MESIAC extrahuje mesiac pre každý dátum v pomenovanom rozsahu „narodeniny“ a porovnáva sa s hodnotou v D5, ktorá je 1. Výsledkom je pole hodnôt TRUE / FALSE, kde každé TRUE predstavuje dátum, kde mesiac = 1.
Hodnoty TRUE FALSE sa potom prevedú na jednotky a nuly s dvojitým záporom (-). SUMPRODUCT potom tieto čísla sčíta a vráti konečný výsledok.
Zaobchádzanie s prázdnymi bunkami
Ak máte v zozname narodenín prázdne bunky, získate nesprávne výsledky, pretože MESIAC (0) vráti hodnotu 1. Ak chcete pracovať s prázdnymi bunkami, môžete upraviť vzorec takto:
=SUMPRODUCT((MONTH(birthdays)=D5)*(birthdays""))
Vynásobením výrazu (narodeniny „“) sa skutočne zrušia mesačné hodnoty prázdnych buniek. Na stránke SUMPRODUCT nájdete ďalšie informácie o tom, ako fungujú logické výrazy vo vnútri SUMPRODUCT.
Riešenie kontingenčnej tabuľky
Kontingenčná tabuľka je vynikajúcim riešením aj pre tento problém.