Нет, вы не можете этого сделать, функция COUNTIF
требует диапазона в качестве первого аргумента - любая операция с диапазоном (например, использование функции MONTH
) преобразует этот диапазон в массив, который COUNTIF
не принимает
Возможная альтернатива - использовать SUMPRODUCT
, например.
=SUMPRODUCT((MONTH(range)=5)+0)
или COUNTIFS
нравится это
=COUNTIFS(range,">="&Z1,range,"<"&EOMONTH(Z1,0)+1)
где Z1 - 1-е число месяца для подсчета, например 1 мая 2013 г.
Конечно, версия SUMPRODUCT не учитывает год (хотя вы можете добавить это), в то время как COUNTIFS делает
Объяснение
В SUMPRODUCT
, когда вы используете выражение типа MONTH(range)=5
, которое возвращает "массив" из TRUE/FALSE
значений, например _11 _...., но SUMPRODUCT
здесь только суммирует числа, поэтому нам нужен способ "принуждать" TRUE к 1 и FALSE к 0. Вы может сделать это с помощью любой математической операции, которая не меняет значение, например +0, * 1 или вы можете добавить - вперед следующим образом:
=SUMPRODUCT(--(MONTH(range)=5))
так что мы получаем что-то вроде
=SUMPRODUCT(--({TRUE;FALSE;FALSE;TRUE}))
... и это становится
=SUMPRODUCT({1;0;0;1})
а затем СУММПРОИЗВ суммирует эти значения, чтобы получить 2, то есть количество дат в мае.
SUMPRODUCT предпочтительнее SUM
просто потому, что вам не нужно "вводить массив" в формулу с помощью CTRL + SHIFT + ENTER
См. здесь для хорошего объяснения SUMPRODUCT и его множества применений.
person
barry houdini
schedule
09.12.2013