немного запутался с обработкой дат (при поиске по форуму не нашел ответа, аналогичной темы, хотя уверен, что её обсуждали не один десяток раз)
есть даты платежей (дни месяца) необходимо скорректировать дату платежа, приходящуюся на субботу и воскресение (это как-то коряво ещё получилось в ручном режиме)
при этом хотелось бы получить количество оставшихся РАБОЧИХ дней до очередного платежа. (и при этом через УФ подсвечивать соответствующие строки, где кол-во рабочих дней меньше или равно 5)
запутался в преобразованиях даты в дни, месяцы, годы и операциях с ними - постоянно вылетают какие-то ошибки или получается абракадабра.
помогите, пожалуйста (может есть уже аналогичная ветка) (данные в ячейках с серыми числами - вспомогательные и будут скрыты при работе)
Здравствуйте!
немного запутался с обработкой дат (при поиске по форуму не нашел ответа, аналогичной темы, хотя уверен, что её обсуждали не один десяток раз)
есть даты платежей (дни месяца) необходимо скорректировать дату платежа, приходящуюся на субботу и воскресение (это как-то коряво ещё получилось в ручном режиме)
при этом хотелось бы получить количество оставшихся РАБОЧИХ дней до очередного платежа. (и при этом через УФ подсвечивать соответствующие строки, где кол-во рабочих дней меньше или равно 5)
запутался в преобразованиях даты в дни, месяцы, годы и операциях с ними - постоянно вылетают какие-то ошибки или получается абракадабра.
помогите, пожалуйста (может есть уже аналогичная ветка) (данные в ячейках с серыми числами - вспомогательные и будут скрыты при работе)карандаш
Что то у Вас сложно все в файле. С рабочими днями работает функция РАБДЕНЬ() например, если в A1 есть какая либо расчетная дата, то для того чтобы исключить попадания на выходные можно использовать формулу:
Код
=РАБДЕНЬ(A1-1;1)
При этом, если дата в A1 попадает на выходные (сб или вс), то произойдет перенос на ближайший понедельник, если в A1 не выходные, то переноса не будет В функцию РАБДЕНЬ() можно добавлять праздники, а вот с рабочими субботами она не работает, для этого нужно делать более сложную формулу
Что то у Вас сложно все в файле. С рабочими днями работает функция РАБДЕНЬ() например, если в A1 есть какая либо расчетная дата, то для того чтобы исключить попадания на выходные можно использовать формулу:
Код
=РАБДЕНЬ(A1-1;1)
При этом, если дата в A1 попадает на выходные (сб или вс), то произойдет перенос на ближайший понедельник, если в A1 не выходные, то переноса не будет В функцию РАБДЕНЬ() можно добавлять праздники, а вот с рабочими субботами она не работает, для этого нужно делать более сложную формулуMCH
Сложно, потому, что трудно получить отдельно день, месяц, год, потом делать операции над ними, потом опять складывать из них дату.
Суть в том, чтобы убрать из текущей даты СЕГОДНЯ день, прилепить туда день выплаты, сравнить полученное с СЕГОДНЯ, если меньше, то посчитать кол-во РАБДЕНЬ, если больше, то увеличить МЕСЯЦ на 1 и посчитать РАБДЕНЬ до платежа.
Вся трудность в расчленении дат и их соединении их из кусков. Поэтому пришлось заводить много дополнительных, вспомогательных ячеек и пытаться оперировать с ними.
Здравствуйте
Сложно, потому, что трудно получить отдельно день, месяц, год, потом делать операции над ними, потом опять складывать из них дату.
Суть в том, чтобы убрать из текущей даты СЕГОДНЯ день, прилепить туда день выплаты, сравнить полученное с СЕГОДНЯ, если меньше, то посчитать кол-во РАБДЕНЬ, если больше, то увеличить МЕСЯЦ на 1 и посчитать РАБДЕНЬ до платежа.
Вся трудность в расчленении дат и их соединении их из кусков. Поэтому пришлось заводить много дополнительных, вспомогательных ячеек и пытаться оперировать с ними.карандаш
Вся трудность в расчленении дат и их соединении их из кусков
А зачем даты раслчленять? Даты - это числа, к которым лего прибавлять/вычитать нужное количество дней, получая при этом новую дату Работайте сразу с датами, не деля их на годы, месяцы, дни
Вся трудность в расчленении дат и их соединении их из кусков
А зачем даты раслчленять? Даты - это числа, к которым лего прибавлять/вычитать нужное количество дней, получая при этом новую дату Работайте сразу с датами, не деля их на годы, месяцы, дниMCH
Теперь с помощью двух файлов-примеров от Pelena и Serge_007 удалось собрать файл-вопрос, на примере которого можно продемонстрировать то, что хотелось сократить.
с помощью предоставленных рабочих формул составил работающую схему.
Возникло два вопроса: 1. возможно ли оптимизировать вычисления, сократив (убрав) промежуточные расчеты (это ячейки, выделенные серым фоном и серым шрифтом)? понятно, что можно справа налево заменять в правых ячейках ссылки на более левые ячейки их значениями, собрав в одну длинную формулу все промежуточные вычисления. Вопрос в том, существует ли "обходной маневр", т.е. какие-то другие формулы, позволяющиеся обойтись без таких длинных, повторяющихся внутренних вычислений.
2. В файле Pelen'ы есть формула
Код
=ЧИСТРАБДНИ(СЕГОДНЯ();ДАТАМЕС(E11;--(E11<$D$9)))
попробовал убрать двойной минус - получил непонятное значение. что такое "двойной минус". Это же не С++
спасибо
Большое спасибо за помощь всем!
Теперь с помощью двух файлов-примеров от Pelena и Serge_007 удалось собрать файл-вопрос, на примере которого можно продемонстрировать то, что хотелось сократить.
с помощью предоставленных рабочих формул составил работающую схему.
Возникло два вопроса: 1. возможно ли оптимизировать вычисления, сократив (убрав) промежуточные расчеты (это ячейки, выделенные серым фоном и серым шрифтом)? понятно, что можно справа налево заменять в правых ячейках ссылки на более левые ячейки их значениями, собрав в одну длинную формулу все промежуточные вычисления. Вопрос в том, существует ли "обходной маневр", т.е. какие-то другие формулы, позволяющиеся обойтись без таких длинных, повторяющихся внутренних вычислений.
2. В файле Pelen'ы есть формула
Код
=ЧИСТРАБДНИ(СЕГОДНЯ();ДАТАМЕС(E11;--(E11<$D$9)))
попробовал убрать двойной минус - получил непонятное значение. что такое "двойной минус". Это же не С++
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?
Вариант с именованной формулой (по последнему файлу)
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?
Вариант с именованной формулой (по последнему файлу)Pelena
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?
да, новый вариант, как выяснилось (с первым вариантом перестраховался)
Большое спасибо, все работает как и хотелось. Подскажите, где можно увидеть содержимое формулы? (в VB не нашел, на странице тоже) хотелось бы проникнуться )) (про -- прочитал)
где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.
Спасибо, понятно. Пожалуйста, помогите ещё раз, сформируйте на основе вашего решения столбец числа оплаты. Виноват, не досмотрел, нужный в работе столбец оказался серым. Сам попробовал - ерунда получается - надо добавлять условия, но тогда все вырождается в мой предыдущий подход - длинный и без списка праздничных дней. Это про столбец I
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?
да, новый вариант, как выяснилось (с первым вариантом перестраховался)
Большое спасибо, все работает как и хотелось. Подскажите, где можно увидеть содержимое формулы? (в VB не нашел, на странице тоже) хотелось бы проникнуться )) (про -- прочитал)
где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.
Спасибо, понятно. Пожалуйста, помогите ещё раз, сформируйте на основе вашего решения столбец числа оплаты. Виноват, не досмотрел, нужный в работе столбец оказался серым. Сам попробовал - ерунда получается - надо добавлять условия, но тогда все вырождается в мой предыдущий подход - длинный и без списка праздничных дней. Это про столбец Iкарандаш