#excel #excel-formula #weekday #sumproduct
Вопрос:
У меня есть список дат в MS Excel в столбце A. Я использую Excel 2016.
Я хочу узнать, сколько дат приходится на воскресенье и отдельно на субботу. Я точно не знаю, сколько строк на листе, поэтому мне нужно использовать весь столбец. Я использую следующую формулу:
Количество суббот:
=SUMPRODUCT(--(WEEKDAY(A:A)=7))
Количество воскресений:
=SUMPRODUCT(--(WEEKDAY(A:A)=1))
Та же формула используется для пятницы только для тестирования. Количество пятниц:
=SUMPRODUCT(--(WEEKDAY(A:A)=6))
Пятница и воскресенье работают хорошо, как я вижу, но суббота возвращает значение icorrect (мне кажется, оно работает с пустыми значениями).
Может быть, это ошибка функции РАБОЧЕГО ДНЯ? У кого-то такая же проблема? Есть идеи, как решить эту проблему?
Ответ №1:
Добавьте дополнительное предложение для исключения пробелов. И не используйте ссылки на все столбцы внутри SUMPRODUCT
. Либо переформатируйте записи в столбце как a Table
, после чего ваша формула будет:
=SUMPRODUCT(--(WEEKDAY(Table1[Date])=7),--(Table1[Date]lt;gt;""))
в противном случае используйте конструкцию, которая определяет последнюю используемую ячейку в этом столбце:
=SUMPRODUCT(--(WEEKDAY(A1:INDEX(A:A,LastRow))=7),--(A1:INDEX(A:A,LastRow)lt;gt;""))
где lastRow определяется в Диспетчере имен как:
=MATCH(9^9,Sheet1!$A:$A)
(Очевидно, измените лист 1 в этом определении по мере необходимости.)
Комментарии:
1. Спасибо, кажется, это работает: =SUMPRODUCT(—(WEEKDAY(A1:INDEX(A:A,MATCH(9^9,test!$A:$A)))=7),—(A1:INDEX(A:A,MATCH(9^9,test!$A:$A))lt;gt;»»))
Ответ №2:
Принимая во внимание
Воскресенье=1 Суббота=6
=SUMPRODUCT(N(ДЕНЬ НЕДЕЛИ(A:A)={1,6}))