
Загальна формула
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Резюме
Для підрахунку дат за робочим днем (тобто підрахунком понеділка, вівторка, середи тощо), ви можете використовувати функцію SUMPRODUCT разом із функцією WEEKDAY. У наведеному прикладі формула в F4:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Примітка: "дати" - це іменований діапазон B4: B15.
Пояснення
Ви можете запитати, чому ми не використовуємо COUNTIF чи COUNTIF? Ці функції здаються очевидним рішенням. Однак без додавання допоміжного стовпця, що містить значення дня тижня, неможливо створити критерії для 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)
Потім числа, що повертаються у ВІДНІЧНИЙ день, порівнюються зі значенням у 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 до свого та нулів:
(1;0;0;1;0;0;0;1;0;0;0;0)
За допомогою одного масиву для обробки SUMPRODUCT підсумовує елементи та повертає результат, 3.
Робота з пустими датами
Якщо в списку дат є порожні клітинки, ви отримаєте неправильні результати, оскільки функція WEEKDAY поверне результат, навіть коли немає дати. Для обробки порожніх комірок можна відрегулювати формулу таким чином:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
Множення на вираз (дати "") - це один із способів скасувати порожні клітинки.