Как решить Excel подсчет субботы

#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}))