Страницы: 1
RSS
Счет ячеек с датами по количеству оставшихся рабочих дней
 
Здравствуйте.Помогите, пожалуйста, с формулой. В именованном диапазоне «КС» указаны даты. Нужно сосчитать в «КС» количество ячеек, в которых до указанных в них дат остался один рабочий день. Формула СУММПРОИЗВ(--(РАБДЕНЬ(СЕГОДНЯ();0)=КС)) считает только рабочие даты, даты суббот и воскресений из счета выпадают, а хотелось бы, чтобы в пятницу, если в КС указана дата субботы или воскресенья, формула считала бы, что остался один рабочий день.
Изменено: Павел Запивахин - 20.08.2019 08:35:48
 
без файла-примера со столбцами "как есть" и "как нужно", полагаю, помощи можно не ждать.
 
Сформулировал так:
Код
=СУММПРОИЗВ((РАБДЕНЬ(СЕГОДНЯ();0)=ЦЕЛОЕ(КС))*(ДЕНЬНЕД(СЕГОДНЯ();2)<6))+
СУММПРОИЗВ((ДЕНЬНЕД(СЕГОДНЯ();2)=5)*(ЦЕЛОЕ(КС)=СЕГОДНЯ()+1))+
СУММПРОИЗВ((ДЕНЬНЕД(СЕГОДНЯ();2)=5)*(ЦЕЛОЕ(КС)=СЕГОДНЯ()+2))

Вместо файла-примера:
Именованный диапазон "КС" - контрольные сроки выполнения задач, могут содержать только дату или дату и время. В диапазоне "КС" нужно сосчитать количество заданий, которые должны быть выполнить сегодня. Если сегодня пятница, то дополнительно нужно прибавить задания, срок выполнения которых намечен на субботу или воскресенье. Формула ЦЕЛОЕ нужна для того, чтобы отсечь время при сравнении даты из "КС" с датой СЕГОДНЯ().
 
Цитата
Павел Запивахин написал:
Вместо файла-примера:
а это - Продолжайте ждать - Вместо ответа.  Если Вам лениво сделать пример, то помогающим тем более.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Продолжайте ждать
:)
Ваш звонок очень важен для нас.
Если вы не хотите ждать для связи со специалистами нажмите 1
Лень двигатель прогресса, доказано!!!
 
Совсем даже не лениво.
 
Павел Запивахин, а где в вашем примере желаемый результат?
Код
=СУММПРОИЗВ((РАБДЕНЬ(B3;0)=ЦЕЛОЕ($C$6:$C$18))*(ДЕНЬНЕД(B3;2)<6))+ЕСЛИ(ДЕНЬНЕД(B3;2)=5;СУММПРОИЗВ(($B$3+1=ЦЕЛОЕ($C$6:$C$18))*(ДЕНЬНЕД(B3;2)<6))+СУММПРОИЗВ(($B$3+2=
Изменено: Mershik - 20.08.2019 10:25:36
Не бойтесь совершенства. Вам его не достичь.
 
В ячейке, залитой желтым цветом.
 
Павел Запивахин, там нет желаемого результата - там формула которая как я понял считает не то что вы хотите. а я Вам о то где каким должен результат.
Не бойтесь совершенства. Вам его не достичь.
 
В ячейке С3 уже та формула, которая считает так, как я хотел.
Код
=СУММПРОИЗВ((РАБДЕНЬ(сего;0)=ЦЕЛОЕ(КС))*(ДЕНЬНЕД(сего;2)<6))+
СУММПРОИЗВ((ДЕНЬНЕД(сего;2)=5)*(ЦЕЛОЕ(КС)=сего+1))+
СУММПРОИЗВ((ДЕНЬНЕД(сего;2)=5)*(ЦЕЛОЕ(КС)=сего+2))

Первая часть (до первого плюса) считает рабочие дни, если на них приходится контрольный срок. Если СЕГОДНЯ()=пятница, то дополнительно к пятнице добавляются контрольные сроки, запланированные на субботу или воскресенье, если они есть, которые считаются во второй и третьей строках. Формулу СЕГОДНЯ() в примере я для тестирования заменил на именованный диапазон "сего", его значение выбирается из выпадающего списка в ячейке В3.
 
Массивная
=SUM(--(WORKDAY(сего;0)=INT(КС-IF(WEEKDAY(КС;2)-5>0;WEEKDAY(КС;2)-5))))
и быстрая
=COUNTIFS(КС;">="& WORKDAY(сего;0);КС;"<"& WORKDAY(сего;1))
Изменено: БМВ - 20.08.2019 11:55:10 (Файл удален, исправлено ниже)
По вопросам из тем форума, личку не читаю.
 
кнопка цитирования не для ответа [МОДЕРАТОР]

Спасибо. Вторая быстрая формула в субботу считает 2, в воскресенье 1, а должен быть 0.
 
Цитата
Павел Запивахин написал:
а должен быть 0.
=COUNTIFS(КС;">="& WORKDAY(сего;0);КС;"<"& IF(WEEKDAY(WORKDAY(сего;0);2)<6;WORKDAY(сего;1)))
=IF(WEEKDAY(WORKDAY(сего;0);2)<6;COUNTIFS(КС;">="& WORKDAY(сего;0);КС;"<"& WORKDAY(сего;1));0)
Изменено: БМВ - 20.08.2019 12:01:55
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо!
Изменено: Павел Запивахин - 20.08.2019 12:21:16
Страницы: 1
Наверх