Страницы: 1
RSS
Подсчет даты и времени с учетом рабочих часов и нерабочих дней
 
Дорогие друзья,  
 
Прошу помочь в решении следующей прикладной задачи (поиск по FAQ и форуму не дал результатов):  
 
Нужно придумать формулу, которая будет добавлять к фиксированной дате дни и часы, но при сложении учитывать только рабочие часы и рабочие дни  
Праздничные дни (04.11.2011, 01.01.2012-10.01.2012) считаются нерабочими и это должно быть учтено:  
 
Т.е если сейчас 17:20, а оставшееся время - 0 дней и 30 минут, формула должна указать завтрашний день и 9:20 утра. А если сегодня еще и пятница, то должен быть указан понедельник.  
Если время старта задачи приходится на нерабочие часы, то отсчет оставшихся дней и часов должен начаться с 9:00 утра ближайшего рабочего дня.  
 
Пример желаемого расчета в приложении. Обратите внимание на комментарии к ячейкам.  
 
Заранее огромное спасибо.
 
Excel может работать круглосуточно-круглогодично, и если он еще может по опыту определить, где выходные дни (спрашивают часто), то о праздниках ему ничего неведомо (спрашивают часто, но праздники у людей разные) :)  
Нужна таблица Ваших праздников.
 
vikttur, Спасибо,  
Добавить таблицу праздников - не проблема.  
Собственно я указал все праздники в 2011 году в ячейке В6.  
Нужно придумать, как добавить в формулу проверку, будет ли в интервале, отведенном на выполнение задачи праздник, и сделать так, чтоб формула корректно отрабатывала данное событие.
 
есть такая функция = РАБДЕНЬ(дата_начала;количество_дней;праздники)  
выдает значение, отстоящее от даты начала на указанное количество дней с учетом праздников.  
Так разберетесь с днями.
 
Типа такого:  
=РАБДЕНЬ(A10;(ОСТАТ(A10;1)-$B$4+C10)/($C$4-$B$4)+B10;$B$6)+$B$4+ОСТАТ(ОСТАТ(A10;1)-$B$4+C10;$C$4-$B$4)
 
MCH, Спасибо большое.  
Почти то, что надо, супер.  
 
Единственное: Задача может начаться за пределами рабочих часов, ее могут назначить в пятницу в 18:00, или в субботу. Нужно придумать, как это можно обыграть...
 
Как вариант, можно сделать колонку, в которой будет указан ближайший рабочий час ко времени, указанному в колонке "Время старта задачи", и вести расчет уже относительно этой новой колонки.
 
{quote}{login=Fedozzz}{date=29.09.2011 04:23}{thema=}{post}Как вариант, можно сделать колонку, в которой будет указан ближайший рабочий час ко времени, указанному в колонке "Время старта задачи", и вести расчет уже относительно этой новой колонки.{/post}{/quote}  
Это можно сделать так:  
=МАКС(РАБДЕНЬ(A10-1;1;$B$6)+$B$4;МИН(A10;ОТБР(A10)+$C$4))
 
и итоговая формула примет вид:  
=РАБДЕНЬ(МАКС(РАБДЕНЬ(A10-1;1;$B$6)+$B$4;МИН(A10;ОТБР(A10)+$C$4));(ОСТАТ(МАКС(РАБДЕНЬ(A10-1;1;$B$6)+$B$4;МИН(A10;ОТБР(A10)+$C$4));1)-$B$4+C10)/($C$4-$B$4)+B10;$B$6)+$B$4+ОСТАТ(ОСТАТ(МАКС(РАБДЕНЬ(A10-1;1;$B$6)+$B$4;МИН(A10;ОТБР(A10)+$C$4));1)-$B$4+C10;$C$4-$B$4)  
 
Получилось достаточно громоздко, но учтены вродебы все ньюансы
 
А каким образом сделать то же самое, но только полученную дату "округлять" до конца текущего рабочего дня?  
т.е. чтобы время в последней колонке везде было 17:00:00?
Страницы: 1
Наверх