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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 21:11   #11
nastyavvolf
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 13
По умолчанию

IgorGO
спасибо.
хм, незнаю можно ли было менять исходные данные, но по-идее суть от этого мало меняется, а код упрощается...
а на VBA как это сделать?

Последний раз редактировалось nastyavvolf; 10.07.2009 в 21:37.
nastyavvolf вне форума Ответить с цитированием
Старый 11.07.2009, 01:10   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Нижняя таблица (см.вложение) рассчитана с помощью написанной на ВБА функции КвоДней, которой передается 3 параметра (три даты):
1.начало периода
2.конец периода
3.любая дата
функция возвращает на сколько дней пересекаются переод заданный двумя первыми датами с периодом от любой даты до конца месяца для этой даты. Начало периода должно быть меньше равно концу периода. Любая дата - она и в Африке любая дата.
Параметры ни как не проверяются.
Вложения
Тип файла: rar книга118.rar (20.7 Кб, 10 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.07.2009, 01:38   #13
nastyavvolf
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 13
По умолчанию

IgorGO
Огромнейшее Вам спасибо, респект и уважуха =)
осталось только разобрать код по слогам...

Последний раз редактировалось nastyavvolf; 11.07.2009 в 01:42.
nastyavvolf вне форума Ответить с цитированием
Старый 11.07.2009, 01:46   #14
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Вариант с использованием VBA:
IgorGO, Ваш расчёт возможно нужно подправить, т.к. в нём разница между 31.10 и 30.10 составляет 2 дня вместо одного.
Вложения
Тип файла: rar 111.rar (23.0 Кб, 11 просмотров)
pivas вне форума Ответить с цитированием
Старый 11.07.2009, 01:55   #15
nastyavvolf
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 13
По умолчанию

pivas
у Вас не хватает по 1 дню в каждом месяце =(
nastyavvolf вне форума Ответить с цитированием
Старый 11.07.2009, 01:56   #16
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Это смотря как считать
pivas вне форума Ответить с цитированием
Старый 11.07.2009, 02:03   #17
nastyavvolf
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 13
По умолчанию

ну в декабре и январе то точно 31 день...
а с благодаря Вашей наблюдательности вижу, что в моей формуле действительно м/у 30,10 и 31,10 2 дня =(((
nastyavvolf вне форума Ответить с цитированием
Старый 11.07.2009, 02:13   #18
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Функция ДНЕЙ360 работает из расёта 360 дней в году 30 дней в месяце, т.е. серьёзно усредняет. А в моём варианте возможно пропадают дни при переходе месяца. Надо подумать. Если так, то к сумме дней надо прибавить кол-во переходов месяца.
pivas вне форума Ответить с цитированием
Старый 11.07.2009, 02:25   #19
nastyavvolf
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 13
По умолчанию

а возможно прописать количество дней в каждом месяце? вот только проблема с високосным годом... хотя его в данной задаче нет, но все же..
nastyavvolf вне форума Ответить с цитированием
Старый 11.07.2009, 02:34   #20
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Для этого есть календарь ))
pivas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с решением задачи Ainur Помощь студентам 6 23.05.2009 11:42
Помогите с решением задачи. Ainur Помощь студентам 4 23.05.2009 11:26
Помогите с решением задачи! Anuta Общие вопросы Delphi 4 26.06.2008 20:26