Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение даты платежа в зависимости от дня недели - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Изменение даты платежа в зависимости от дня недели
карандаш Дата: Вторник, 20.08.2013, 07:52 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Здравствуйте!

немного запутался с обработкой дат
(при поиске по форуму не нашел ответа, аналогичной темы, хотя уверен, что её обсуждали не один десяток раз)

есть даты платежей (дни месяца)
необходимо скорректировать дату платежа, приходящуюся на субботу и воскресение (это как-то коряво ещё получилось в ручном режиме)

при этом хотелось бы получить количество оставшихся РАБОЧИХ дней до очередного платежа.
(и при этом через УФ подсвечивать соответствующие строки, где кол-во рабочих дней меньше или равно 5)

запутался в преобразованиях даты в дни, месяцы, годы и операциях с ними - постоянно вылетают какие-то ошибки или получается абракадабра.

помогите, пожалуйста (может есть уже аналогичная ветка)
(данные в ячейках с серыми числами - вспомогательные и будут скрыты при работе)
К сообщению приложен файл: pay.xls (31.0 Kb)


Сообщение отредактировал карандаш - Вторник, 20.08.2013, 07:53
 
Ответить
СообщениеЗдравствуйте!

немного запутался с обработкой дат
(при поиске по форуму не нашел ответа, аналогичной темы, хотя уверен, что её обсуждали не один десяток раз)

есть даты платежей (дни месяца)
необходимо скорректировать дату платежа, приходящуюся на субботу и воскресение (это как-то коряво ещё получилось в ручном режиме)

при этом хотелось бы получить количество оставшихся РАБОЧИХ дней до очередного платежа.
(и при этом через УФ подсвечивать соответствующие строки, где кол-во рабочих дней меньше или равно 5)

запутался в преобразованиях даты в дни, месяцы, годы и операциях с ними - постоянно вылетают какие-то ошибки или получается абракадабра.

помогите, пожалуйста (может есть уже аналогичная ветка)
(данные в ячейках с серыми числами - вспомогательные и будут скрыты при работе)

Автор - карандаш
Дата добавления - 20.08.2013 в 07:52
MCH Дата: Вторник, 20.08.2013, 08:18 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Что то у Вас сложно все в файле.
С рабочими днями работает функция РАБДЕНЬ()
например, если в A1 есть какая либо расчетная дата, то для того чтобы исключить попадания на выходные можно использовать формулу:
Код
=РАБДЕНЬ(A1-1;1)

При этом, если дата в A1 попадает на выходные (сб или вс), то произойдет перенос на ближайший понедельник, если в A1 не выходные, то переноса не будет
В функцию РАБДЕНЬ() можно добавлять праздники, а вот с рабочими субботами она не работает, для этого нужно делать более сложную формулу
 
Ответить
СообщениеЧто то у Вас сложно все в файле.
С рабочими днями работает функция РАБДЕНЬ()
например, если в A1 есть какая либо расчетная дата, то для того чтобы исключить попадания на выходные можно использовать формулу:
Код
=РАБДЕНЬ(A1-1;1)

При этом, если дата в A1 попадает на выходные (сб или вс), то произойдет перенос на ближайший понедельник, если в A1 не выходные, то переноса не будет
В функцию РАБДЕНЬ() можно добавлять праздники, а вот с рабочими субботами она не работает, для этого нужно делать более сложную формулу

Автор - MCH
Дата добавления - 20.08.2013 в 08:18
карандаш Дата: Четверг, 22.08.2013, 10:10 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Здравствуйте

Сложно, потому, что трудно получить отдельно день, месяц, год, потом делать операции над ними, потом опять складывать из них дату.

Суть в том, чтобы убрать из текущей даты СЕГОДНЯ день, прилепить туда день выплаты, сравнить полученное с СЕГОДНЯ, если меньше, то посчитать кол-во РАБДЕНЬ, если больше, то увеличить МЕСЯЦ на 1 и посчитать РАБДЕНЬ до платежа.

Вся трудность в расчленении дат и их соединении их из кусков. Поэтому пришлось заводить много дополнительных, вспомогательных ячеек и пытаться оперировать с ними.
 
Ответить
СообщениеЗдравствуйте

Сложно, потому, что трудно получить отдельно день, месяц, год, потом делать операции над ними, потом опять складывать из них дату.

Суть в том, чтобы убрать из текущей даты СЕГОДНЯ день, прилепить туда день выплаты, сравнить полученное с СЕГОДНЯ, если меньше, то посчитать кол-во РАБДЕНЬ, если больше, то увеличить МЕСЯЦ на 1 и посчитать РАБДЕНЬ до платежа.

Вся трудность в расчленении дат и их соединении их из кусков. Поэтому пришлось заводить много дополнительных, вспомогательных ячеек и пытаться оперировать с ними.

Автор - карандаш
Дата добавления - 22.08.2013 в 10:10
Serge_007 Дата: Четверг, 22.08.2013, 10:44 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Как понял:
Код
=ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());D3)<СЕГОДНЯ();ЧИСТРАБДНИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());D3);СЕГОДНЯ());ЧИСТРАБДНИ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;D3)))
К сообщению приложен файл: pay_day.xls (38.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеКак понял:
Код
=ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());D3)<СЕГОДНЯ();ЧИСТРАБДНИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());D3);СЕГОДНЯ());ЧИСТРАБДНИ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;D3)))

Автор - Serge_007
Дата добавления - 22.08.2013 в 10:44
Pelena Дата: Четверг, 22.08.2013, 11:02 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19373
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
Как поняла
К сообщению приложен файл: 8416515.xls (34.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКак поняла

Автор - Pelena
Дата добавления - 22.08.2013 в 11:02
MCH Дата: Четверг, 22.08.2013, 12:46 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (карандаш, Четверг, 22.08.2013, 10:10 # 3)
Вся трудность в расчленении дат и их соединении их из кусков

А зачем даты раслчленять? Даты - это числа, к которым лего прибавлять/вычитать нужное количество дней, получая при этом новую дату
Работайте сразу с датами, не деля их на годы, месяцы, дни
 
Ответить
Сообщение
Цитата (карандаш, Четверг, 22.08.2013, 10:10 # 3)
Вся трудность в расчленении дат и их соединении их из кусков

А зачем даты раслчленять? Даты - это числа, к которым лего прибавлять/вычитать нужное количество дней, получая при этом новую дату
Работайте сразу с датами, не деля их на годы, месяцы, дни

Автор - MCH
Дата добавления - 22.08.2013 в 12:46
карандаш Дата: Четверг, 22.08.2013, 19:36 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Большое спасибо за помощь всем!

Теперь с помощью двух файлов-примеров от Pelena и Serge_007 удалось собрать файл-вопрос, на примере которого можно продемонстрировать то, что хотелось сократить.

с помощью предоставленных рабочих формул составил работающую схему.

Возникло два вопроса:
1. возможно ли оптимизировать вычисления, сократив (убрав) промежуточные расчеты (это ячейки, выделенные серым фоном и серым шрифтом)?
понятно, что можно справа налево заменять в правых ячейках ссылки на более левые ячейки их значениями, собрав в одну длинную формулу все промежуточные вычисления.
Вопрос в том, существует ли "обходной маневр", т.е. какие-то другие формулы, позволяющиеся обойтись без таких длинных, повторяющихся внутренних вычислений.

2. В файле Pelen'ы есть формула
Код
=ЧИСТРАБДНИ(СЕГОДНЯ();ДАТАМЕС(E11;--(E11<$D$9)))

попробовал убрать двойной минус - получил непонятное значение.
что такое "двойной минус". Это же не С++

спасибо
К сообщению приложен файл: pay2.xls (33.5 Kb)


Сообщение отредактировал карандаш - Четверг, 22.08.2013, 19:40
 
Ответить
СообщениеБольшое спасибо за помощь всем!

Теперь с помощью двух файлов-примеров от Pelena и Serge_007 удалось собрать файл-вопрос, на примере которого можно продемонстрировать то, что хотелось сократить.

с помощью предоставленных рабочих формул составил работающую схему.

Возникло два вопроса:
1. возможно ли оптимизировать вычисления, сократив (убрав) промежуточные расчеты (это ячейки, выделенные серым фоном и серым шрифтом)?
понятно, что можно справа налево заменять в правых ячейках ссылки на более левые ячейки их значениями, собрав в одну длинную формулу все промежуточные вычисления.
Вопрос в том, существует ли "обходной маневр", т.е. какие-то другие формулы, позволяющиеся обойтись без таких длинных, повторяющихся внутренних вычислений.

2. В файле Pelen'ы есть формула
Код
=ЧИСТРАБДНИ(СЕГОДНЯ();ДАТАМЕС(E11;--(E11<$D$9)))

попробовал убрать двойной минус - получил непонятное значение.
что такое "двойной минус". Это же не С++

спасибо

Автор - карандаш
Дата добавления - 22.08.2013 в 19:36
Pelena Дата: Четверг, 22.08.2013, 19:43 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19373
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (карандаш, Четверг, 22.08.2013, 19:36 # 7)
что такое "двойной минус"

Читаем

Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?

Вариант с именованной формулой (по последнему файлу)
К сообщению приложен файл: 3694636.xls (31.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (карандаш, Четверг, 22.08.2013, 19:36 # 7)
что такое "двойной минус"

Читаем

Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?

Вариант с именованной формулой (по последнему файлу)

Автор - Pelena
Дата добавления - 22.08.2013 в 19:43
_Boroda_ Дата: Пятница, 23.08.2013, 01:21 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16676
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Код
=ЧИСТРАБДНИ(E$3;КОНМЕСЯЦА(E$3;-(ДЕНЬ(E$3)<=D5))+D5;Лист2!A$2:A$35)-1+(ДЕНЬНЕД(КОНМЕСЯЦА(E$3;-(ДЕНЬ(E$3)<=D5))+D5;2)>5)

где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.
К сообщению приложен файл: pay2_1.xls (39.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Код
=ЧИСТРАБДНИ(E$3;КОНМЕСЯЦА(E$3;-(ДЕНЬ(E$3)<=D5))+D5;Лист2!A$2:A$35)-1+(ДЕНЬНЕД(КОНМЕСЯЦА(E$3;-(ДЕНЬ(E$3)<=D5))+D5;2)>5)

где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.

Автор - _Boroda_
Дата добавления - 23.08.2013 в 01:21
карандаш Дата: Понедельник, 26.08.2013, 10:38 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (карандаш, Четверг, 22.08.2013, 19:36 # 7)
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?

да, новый вариант, как выяснилось (с первым вариантом перестраховался)

Большое спасибо, все работает как и хотелось. Подскажите, где можно увидеть содержимое формулы? (в VB не нашел, на странице тоже) хотелось бы проникнуться ))
(про -- прочитал)

где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.

Спасибо, понятно.
Пожалуйста, помогите ещё раз, сформируйте на основе вашего решения столбец числа оплаты. Виноват, не досмотрел, нужный в работе столбец оказался серым. Сам попробовал - ерунда получается - надо добавлять условия, но тогда все вырождается в мой предыдущий подход - длинный и без списка праздничных дней.
Это про столбец I
 
Ответить
Сообщение
Цитата (карандаш, Четверг, 22.08.2013, 19:36 # 7)
Так всё таки, если расчетная дата попадает на субботу, реальная должна быть в пятницу накануне (Ваш первый файл) или в следующий понедельник (новый вариант)?

да, новый вариант, как выяснилось (с первым вариантом перестраховался)

Большое спасибо, все работает как и хотелось. Подскажите, где можно увидеть содержимое формулы? (в VB не нашел, на странице тоже) хотелось бы проникнуться ))
(про -- прочитал)

где в Лист2!A$2:A$35 список праздничных рабочих дней. Иначе будет ошибка.

Спасибо, понятно.
Пожалуйста, помогите ещё раз, сформируйте на основе вашего решения столбец числа оплаты. Виноват, не досмотрел, нужный в работе столбец оказался серым. Сам попробовал - ерунда получается - надо добавлять условия, но тогда все вырождается в мой предыдущий подход - длинный и без списка праздничных дней.
Это про столбец I

Автор - карандаш
Дата добавления - 26.08.2013 в 10:38
Serge_007 Дата: Понедельник, 26.08.2013, 10:44 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (карандаш, Понедельник, 26.08.2013, 10:38 # 10)
где можно увидеть содержимое формулы?
Вариант с именованной формуло
- следовательно в именах Ctrl+F3


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (карандаш, Понедельник, 26.08.2013, 10:38 # 10)
где можно увидеть содержимое формулы?
Вариант с именованной формуло
- следовательно в именах Ctrl+F3

Автор - Serge_007
Дата добавления - 26.08.2013 в 10:44
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!