Формула на Excel: Брой дати по дни от седмицата -

Обща формула

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Обобщение

За да преброите датите по делничните дни (т.е. да преброите понеделник, вторник, сряда и т.н.), можете да използвате функцията SUMPRODUCT заедно с функцията WEEKDAY. В показания пример формулата във F4 е:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Забележка: "дати" е наименуваният диапазон B4: B15.

Обяснение

Може би се чудите защо не използваме COUNTIF или COUNTIFs? Тези функции изглеждат като очевидното решение. Въпреки това, без добавяне на помощна колона, която съдържа стойност от делничния ден, няма начин да се създадат критерии за COUNTIF да брои делничните дни в диапазон от дати.

Вместо това използваме гъвкавата функция SUMPRODUCT, която обработва елегантно масивите, без да е необходимо да използвате Control + Shift + Enter.

Използваме SUMPRODUCT само с един аргумент, който се състои от този израз:

--(WEEKDAY(dates,2)=E4)

Работейки отвътре навън, функцията WEEKDAY е конфигурирана с незадължителен аргумент 2, което я кара да връща числа 1-7 за дните понеделник-неделя, съответно. Това улеснява изброяването на дните по ред с числата в колона Е в последователност.

След това WEEKDAY оценява всяка дата в посочения диапазон "дати" и връща число. Резултатът е масив като този:

(1;3;7;1;5;2;7;1;7;5;4;7)

След това числата, върнати от WEEKDAY, се сравняват със стойността в E4, която е 1:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

Резултатът е масив от TRUE / FALSE стойности.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

SUMPRODUCT работи само с числа (не текст или булеви числа), така че използваме двойния отрицателен, за да принудим стойностите TRUE / FALSE към one и нули:

(1;0;0;1;0;0;0;1;0;0;0;0)

С един масив за обработка, SUMPRODUCT сумира елементите и връща резултата, 3.

Справяне с празни дати

Ако имате празни клетки в списъка с дати, ще получите неправилни резултати, тъй като функцията WEEKDAY ще върне резултат, дори когато няма дата. За да обработвате празни клетки, можете да настроите формулата, както следва:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Умножаването по израза (дати "") е един от начините за премахване на празните клетки.

Интересни статии...