Страницы: 1
RSS
Вычисление даты без учета праздничных и выходных дней
 
Помогите, пожалуйста, составить две формулы.  
Задача такая:  
к определённой дате, назовём её «дата 1», надо прибавить 12 дней при этом, результат занести в столбец «дата 2»,    
   но (!!!) если 12-й день выпадает на дату отмеченную красным цветом дату (это праздничные и выходные дни),    
    в столбец «дата 2» нужно занести дату, следующую первой за датой или датами  отмеченную красным цветом, т.е. результат в столбце «дата 2» не должен выпасть на праздничный или выходной день.  
 
И вторая задача.    
К результату столбца «дата 2», надо прибывать 30 дней и результат занести в столбец «дата 3»,    
     но (!!!) если 30-й день выпадает на дату отмеченную красным цветом (это праздничные и выходные дни),    
     в столбец «дата 3» нужно занести дату, следующую первой за датой или датами  отмеченную красным цветом, т.е. результат в столбце «дата 3» не должен выпасть на праздничный или выходной день.  
     и при этом, если столбец «дата 4» остается на 30-й день не заполненным (пуст), нужно результат в столбце «дата 3» как-то отметь, например, закрасить ячейку.
 
Функция РАБДЕНЬ().
 
{quote}{login=}{date=11.01.2012 11:19}{thema=}{post}Функция РАБДЕНЬ().{/post}{/quote}  
 
Я думаю, что она не подходит, так как при подсчете мне надо учитывать выходные дни и праздники,только если конечная дата (результат) выпадает на не рабочий день его надо пропустить и считать дальше с первого рабочего дня.
 
Для "дата2" можно так попробовать  
=ЕСЛИ(ДЕНЬНЕД(K7+12;2)=6;K7+14;ЕСЛИ(ДЕНЬНЕД(K7+12;2)=7;K7+13;K7+12))
 
{quote}{login=}{date=12.01.2012 12:06}{thema=}{post}Для "дата2" можно так попробовать  
=ЕСЛИ(ДЕНЬНЕД(K7+12;2)=6;K7+14;ЕСЛИ(ДЕНЬНЕД(K7+12;2)=7;K7+13;K7+12)){/post}{/quote}  
 
Большое спасибо за помощь, но не при всех условиях работает формула, например если в столбец "дата 1" ввести 11.02.2012, то "дата 2" будет 23.02.2012, что является праздничным днем.  
результат в столбце "дата 2" должен выпадать только на рабочий день.
 
Как Excel узнает, что день праздничный или выходной, если даже некоторые Сб и Вс у Вас рабочие?  
Вар.1 Создать макрос, который по цвету заливки будет определять "ленивые" дни.  
Вар.2 Создать отдельный список этих самых "ленивых".  
Вар.2 см. в файле. Формула массива. Список сами дополняйте.
 
{quote}{login=vikttur}{date=12.01.2012 02:02}{thema=}{post}Как Excel узнает, что день праздничный или выходной, если даже некоторые Сб и Вс у Вас рабочие?  
Вар.1 Создать макрос, который по цвету заливки будет определять "ленивые" дни.  
Вар.2 Создать отдельный список этих самых "ленивых".  
Вар.2 см. в файле. Формула массива. Список сами дополняйте.{/post}{/quote}  
 
 
 
Извините я, наверное, неправильно выразил задачу.  
«Срок, исчисляемый днями, истекает в последний день установленного срока. Если окончание срока, исчисляемого днями, приходится на нерабочий день, последним днем срока считается первый следующий за ним рабочий день».    
10-й день не должен выпасть на нерабочий день. А в столбец «дата 2» необходимо внести дату, следующую за 10-м днем.      
Например: срок начался 26.12.2011 г. + 10 дней выпадает на 05.01.2012 г., 5 января 2012 года является нерабочим днем, значит 10-й день, выпадает на 10.01.2012 г. (первый рабочий день). Соответственно в столбец «дата 2» нужно поставить дату 11.01.2012 г
 
В первом вопросе фигурировало 12 дней, теперь 10. Вы уж определитесь.  
 
В формуле есть функция СТРОКА(12:24). Начало проверяемого диапазона с 12 дня по 24. Взято немного с запасом, т.к. число выходных дней подряд (с 30 декабря по 09 января) равно 11. Попробуйте сами поменять диапазон.
 
{quote}{login=vikttur}{date=12.01.2012 11:21}{thema=}{post}В первом вопросе фигурировало 12 дней, теперь 10. Вы уж определитесь.  
 
В формуле есть функция СТРОКА(12:24). Начало проверяемого диапазона с 12 дня по 24. Взято немного с запасом, т.к. число выходных дней подряд (с 30 декабря по 09 января) равно 11. Попробуйте сами поменять диапазон.{/post}{/quote}  
 
 
  Извините за назойливость, но можно сказать, что я Exel совсем не силен. Только пытаюсь осилить. С днями да, немного напутал.      
  Можно попросить Вас выложить формулу  с учетом последнего отредактированного файла.    
 10-й день не должен выпасть на нерабочий день.  
Т.е. окончание срока должно выпасть на рабочий день или на первый рабочий день следующий за нерабочим.  
А в столбец «дата 2» необходимо внести дату, следующую за 10-м днем.  
Это будет дата начала следующего срока.
 
РАБДЕНЬ(D10+9;1;I$4:I$113)  
если первый день второго периода - любой  
или  
=РАБДЕНЬ(РАБДЕНЬ(D10+9;1;I$4:I$113);1;I$4:I$113)  
если первый день второго периода должен быть рабочим
 
РАБДЕНЬ() не подходит, тут и праздники, и выходные не выходные.
 
Vikttur, добрый вечер. Не могли бы Вы объяснить принцип действия предложенной Вами формулы.  Дело в том, что не всегда она выдает правильные значения.  
 
{=D10+МИН(ЕСЛИ(СЧЁТЕСЛИ(I4:I117;D10+СТРОКА(10:24))=0;СТРОКА(10:24)))}  
 
СТРОКА(10:24) ???  
   
Формула должна соответствовать требованию:  «срок, исчисляемый днями, истекает в последний день установленного срока. Если окончание срока, исчисляемого днями, приходится на нерабочий день, последним днем срока считается первый следующий за ним рабочий день».    
 
Окончание срока, а это 10-й день, не должен выпасть на нерабочий день.    
А в столбец «дата 2» необходимо внести дату, следующую за 10-м днем, но этот результат не обязательно должен быть рабочим днем, любой.
 
В сообщении от 12.01.2012, 23:21 описано, для чего СТРОКА().  
 
Условие СЧЁТЕСЛИ(I4:I117;D10+СТРОКА(10:24))=0  
Проверяем наличие даты в диапазоне нерабочих дней I4:I117. Какой даты?    
D10+10, D10+11,...D10+24  
Если проверяемой даты там нет (СЧЕТЕСЛИ()=0), то ИСТИНА.  
 
ЕСЛИ(условие;СТРОКА(10:24))  
Если условие истинно, то в массив заносится количество дней (10, 11,..., 24), если ЛОЖЬ, то в массиве ЛОЖЬ.  
 
МИН(ЕСЛИ(...)) - найденное минимальное число добавочных дней, которое добавляем к дате D10.  
 
Насколько я понял, формула задачу выполняет.
 
{quote}{login=vikttur}{date=13.01.2012 09:27}{thema=}{post}В сообщении от 12.01.2012, 23:21 описано, для чего СТРОКА().  
Vikttur я Вам очень благодарен, можно пока тему не закрывать, я пока тестирую формулу на случай если возникнуть вопросы.  
И скажите пожалуйста, что надо прочитать что бы самому научиться.
 
Не переживайте, тему никто без причины не закроет. Она останется для тех, кто будет после вас..  
 
<<что надо прочитать что бы самому научиться.>>  
 
Читайте данный форум. Ставьте пред собой задачи. Решайте то, что люди просют. Будьте осторожны, можно втянуться в эту секту и тогда ..придётся продать свою хату..
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Т.к. исключений мало, перечислил их через ЕСЛИ, остальное через РАБДЕНЬ
Страницы: 1
Читают тему
Наверх