
Общая формула
=NETWORKDAYS(date,EOMONTH(date,0),holidays)
Резюме
Для расчета рабочих дней в месяц используйте функцию EOMONTH вместе с функцией NETWORKDAYS. В показанном примере формула C4 имеет следующий вид:
=NETWORKDAYS(B4,EOMONTH(B4,0),holidays)
Где «праздники» - именованный диапазон E3: E13.
Объяснение
Во-первых, важно понимать, что значения в столбце «Месяц» (B) - это фактические даты, отформатированные в пользовательском числовом формате «ммм».
Например, B4 содержит 1 января 2014 г., но отображает только «Янв» в пользовательском числовом формате.
Сама формула основана на функции ЧИСТРАБДНИ, которая возвращает количество рабочих дней между датой начала и датой окончания с учетом праздников (если они предусмотрены).
Для каждого месяца дата начала берется из столбца B, а дата окончания рассчитывается с помощью функции EOMONTH следующим образом:
EOMONTH(B4,0)
EOMONTH принимает дату и возвращает последний день месяца. Сам месяц контролируется вторым аргументом. Поскольку в этом случае мы хотим оставаться в том же месяце, мы используем ноль.
Наконец, список праздников предоставляется в качестве третьего аргумента NETWORKDAYS с использованием именованного диапазона праздников (E3: E13).
Используя эту информацию, NETWORKDAYS вычисляет количество рабочих дней в каждом месяце, автоматически исключая выходные и праздничные дни.
Если вам нужно больше контролировать, какие дни считаются выходными, используйте функцию ЧИСТРАБДНИ.INTL.