![](https://cdn.wiki-base.com/2696663/excel_formula_count_birthdays_by_month__2.png.webp)
Обща формула
=SUMPRODUCT(--(MONTH(birthday)=number))
Обобщение
За да преброите броя на рождените дни в списък, можете да използвате формула, базирана на функциите SUMPRODUCT и MONTH. В показания пример E5 съдържа тази формула:
=SUMPRODUCT(--(MONTH(birthday)=D5))
Тази формула отчита рождените дни през януари (тъй като D5 съдържа 1) в посочения диапазон "рождени дни" (B5: B104).
Обяснение
Бихте си помислили, че можете да използвате функцията COUNTIF за броене на рождени дни, но проблемът е, че COUNTIF работи само с диапазони и няма да ви позволи да използвате нещо като МЕСЕЦ, за да извлечете само номера на месеца от датите. Така че вместо това използваме SUMPRODUCT.
Вътре в SUMPRODUCT имаме този израз:
MONTH(birthday)=D5)
Функцията MONTH извлича месеца за всяка дата в посочения диапазон "рождени дни" и това се сравнява със стойността в D5, която е 1. Резултатът е масив от TRUE / FALSE стойности, където всяка TRUE представлява дата, където месец = 1.
След това стойностите TRUE FALSE се преобразуват в единици и нули с двойно отрицателно (-). След това SUMPRODUCT сумира тези числа и връща краен резултат.
Справяне с празни клетки
Ако имате празни клетки в списъка с рождени дни, ще получите неправилни резултати, тъй като MONTH (0) връща 1. За да обработвате празни клетки, можете да настроите формулата, както следва:
=SUMPRODUCT((MONTH(birthdays)=D5)*(birthdays""))
Умножаването по израза (рождени дни "") ефективно отменя месечните стойности за празни клетки. Вижте страницата SUMPRODUCT за повече информация за това как работят логическите изрази в SUMPRODUCT.
Решение на обобщена таблица
Осева таблица е отлично решение и за този проблем.