Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 20:05   #1
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию Проверка дня на празник и нерабочый день

Помогите разобратся.
Есть файл с примером но без макросов.

Надо проверить день совпадает с таблицей праздников или нет а потом суббота или воскресене , найти следуюший рабочый день и поставить данный день
Вложения
Тип файла: zip primer.zip (2.8 Кб, 21 просмотров)

Последний раз редактировалось barbus; 26.05.2009 в 22:05.
barbus вне форума Ответить с цитированием
Старый 27.05.2009, 01:48   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

хорошая задачка.
вы немного упрощенно смотрите на ее решение.
для решения необходимо:
1. список государственных праздников формат день.месяц
2. знать, как сосчитать пасху для любого года (а через 7 недель от пасхи - троица, на украине это тоже празднуют)
3. что происходит если гос.праздник попадает на выходной?
вот и задумайтесь с какими сложностями вы столкнетесь:
- задача 2 сама по себе потребует усилий.
- вот еще простой пример отсчитайте 11 рабочих дней за 13-м марта 2009 года... 11-м рабочим днем будет 30 марта 2009 года. Отсчитайте 11 рабочих дней от 12 марта 2009 года, что выходит? правильно - 27 марта 2009 года. как видите, начальная дата изменилась на день, а конечная на 3. Сделайте сначала формулу, которая правильно вам отсчитает 11 рабочих дней от 12 и от 13 марта 2009 года.
- а если надо отсчитать больше 300 рабочих дней?
- а если начальная дата в одном году, а конечная в другом?

тут много тонких вопросов
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.05.2009, 18:43   #3
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию

Все понятно.

Давайте проанализируем что у нас есть.

1. стартовая дата
2. расчетный месяц
3. результат
4. таблица праздников с возможностью добавить непридвиденный празник или траурный день

по формулам в Exel получил проверку на выходноий.

нашел код для празников но надо приспособить
Изображения
Тип файла: jpg prim.jpg (50.5 Кб, 137 просмотров)
Тип файла: jpg 12.jpg (17.4 Кб, 127 просмотров)
Тип файла: jpg 42.JPG (88.5 Кб, 138 просмотров)
Вложения
Тип файла: doc 1.doc (29.0 Кб, 21 просмотров)
barbus вне форума Ответить с цитированием
Старый 27.05.2009, 20:55   #4
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Примерный вариант проверки по конечной дате. Может пригодится.
Вложения
Тип файла: zip primer.zip (7.6 Кб, 23 просмотров)
pivas вне форума Ответить с цитированием
Старый 28.05.2009, 20:18   #5
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию

Может у кого есть другие идеи!
barbus вне форума Ответить с цитированием
Старый 28.05.2009, 22:09   #6
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

А почему нельзя использовать стандартную функцию
Код:
=РАБДЕНЬ("ячейка";1)
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 28.05.2009, 23:56   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

потому, что РАБДЕНЬ(30.04.2009;1) даст 01.05.2009, а на украине следующим рабочим днем за 30 апреля 2009 года был 5 мая 2009 года. почувствуйте разницу.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.05.2009, 00:51   #8
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

barbus, не корысти ради, а научения для... Чем не устраивает мой вариант?
pivas вне форума Ответить с цитированием
Старый 29.05.2009, 09:12   #9
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Так функция РАБДЕНЬ может на автомате вычесть "сб", "вс", а праздники загнать в таблицу.
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 29.05.2009, 10:54   #10
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

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

несложно сюда же добавить праздники

ну и условие на персечение праздника и выходного ... тут надо подумать.
kievlyanin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить день недели по заданному числу (считать в месяце 30 дней и первый день месяца понедельник dan1991 Помощь студентам 1 01.03.2009 20:59
Смена дня UnChanter Общие вопросы Delphi 13 03.02.2009 16:56
Добавление дня к дате Askat БД в Delphi 2 03.03.2008 11:30
Help!!! диплом через 2 дня!!!! WinD Помощь студентам 3 23.06.2007 20:21