![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
нужно чтобы проставляло количество дней в конкретном месяце интервала...
пожалуйста, помогите ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
забыла файл вложить... вот
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
Есть готовая функция "ДНЕЙ360" в разделе "Дата и время". Вычисляет кол-во дней между датами.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
про готовые функции знаю, но необходимо это выполнить именно на VBA...
|
![]() |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
к примеру эта:
=ЕСЛИ(ИЛИ(("1."&C$4&"."&(ГОД($A5)+Е СЛИ(МЕСЯЦ($A5)>МЕСЯЦ("1."&C$4&ГОД($ A5));1;0)))*1>$B5*1;(("1."&МЕСЯЦ("1 ."&C$4&ГОД($A5))+ЕСЛИ(МЕСЯЦ("1."&C$ 4&ГОД($A5))=12;-11;1)&"."&(ГОД($A5)+ЕСЛИ(ИЛИ(МЕСЯЦ( $A5)>МЕСЯЦ("1."&C$4&ГОД($A5));МЕСЯЦ ("1."&C$4&"1")=12);1;0)))-1)*1<$A5*1);0;ЕСЛИ($B5*1<(("1."&МЕС ЯЦ("1."&C$4&ГОД($A5))+ЕСЛИ(МЕСЯЦ("1 ."&C$4&ГОД($A5))=12;-11;1)&"."&(ГОД($A5)+ЕСЛИ(ИЛИ(МЕСЯЦ( $A5)>МЕСЯЦ("1."&C$4&ГОД($A5));МЕСЯЦ ("1."&C$4&"1")=12);1;0)))-1)*1;$B5+1;(("1."&МЕСЯЦ("1."&C$4&ГО Д($A5))+ЕСЛИ(МЕСЯЦ("1."&C$4&ГОД($A5 ))=12;-11;1)&"."&(ГОД($A5)+ЕСЛИ(ИЛИ(МЕСЯЦ( $A5)>МЕСЯЦ("1."&C$4&ГОД($A5));МЕСЯЦ ("1."&C$4&"1")=12);1;0)))-1)+1)-ЕСЛИ($A5*1>("1."&C$4&"."&(ГОД($A5)+ ЕСЛИ(МЕСЯЦ($A5)>МЕСЯЦ("1."&C$4&ГОД( $A5));1;0)))*1;$A5;("1."&C$4&"."&(Г ОД($A5)+ЕСЛИ(МЕСЯЦ($A5)>МЕСЯЦ("1."& C$4&ГОД($A5));1;0))))) ©Шпец Докапыч Последний раз редактировалось nastyavvolf; 10.07.2009 в 16:25. |
![]() |
![]() |
![]() |
#7 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
![]() Придумайте формулу попроще, пожалуйста. Ну или подождите немного, пока её придумает кто-нибудь другой... |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
хм, ну тогда вот, тот же алгоритм только передаланный мной =)
=ЕСЛИ(ИЛИ(КОНМЕСЯЦА("1."&МЕСЯЦ("1." &C$4&"."&ГОД($A5))&"."&ГОД($A5)+ЕСЛ И(МЕСЯЦ("1."&C$4&"."&ГОД($A5))>9;0; 1);-1)+1>$B5*1;КОНМЕСЯЦА("1."&МЕСЯЦ("1. "&C$4&"."&ГОД($A5))&"."&ГОД($A5)+ЕС ЛИ(МЕСЯЦ("1."&C$4&"."&ГОД($A5))>9;0 ;1);0)<$A5*1);0;ЕСЛИ($B5*1<КОНМЕСЯЦ А("1."&МЕСЯЦ("1."&C$4&"."&ГОД($A5)) &"."&ГОД($A5)+ЕСЛИ(МЕСЯЦ("1."&C$4&" ."&ГОД($A5))>9;0;1);0);$B5+1;КОНМЕС ЯЦА("1."&МЕСЯЦ("1."&C$4&"."&ГОД($A5 ))&"."&ГОД($A5)+ЕСЛИ(МЕСЯЦ("1."&C$4 &"."&ГОД($A5))>9;0;1);0)+1)-ЕСЛИ($A5*1>КОНМЕСЯЦА("1."&МЕСЯЦ("1. "&C$4&"."&ГОД($A5))&"."&ГОД($A5)+ЕС ЛИ(МЕСЯЦ("1."&C$4&"."&ГОД($A5))>9;0 ;1);-1)+1;$A5;КОНМЕСЯЦА("1."&МЕСЯЦ("1."& C$4&"."&ГОД($A5))&"."&ГОД($A5)+ЕСЛИ (МЕСЯЦ("1."&C$4&"."&ГОД($A5))>9;0;1 );-1)+1)) Последний раз редактировалось nastyavvolf; 10.07.2009 в 16:35. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 13
|
![]()
алгоритм простой, только как это в VBA отразить я не знаю
|
![]() |
![]() |
![]() |
#10 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
я чуть изменил исходные данные (строку с названиями месяцев, там теперь стоит дата - первый день соответствующего месяца), кстати вопрос к автору, из чего явствует, что написанный в колонке "С" октябрь относится к 2005 году, а не допустим к 2020? а январь уже к 2006? вопрос риторический, можно не отвечать.
Алгоритм приведенной ниже формулы довольно прост: выбираем минимальное значение из двух: конец данного месяца и конец рассматриваемого периода, назовем его МИ, выбираем максимальное значение из двух: начало месяца и начало периода, назовем его МА. Если МИ меньше МА, общих дней нет, иначе в этот месяц попало МИ-МА+1 дней из рассматриваемого периода. Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с решением задачи | Ainur | Помощь студентам | 6 | 23.05.2009 11:42 |
Помогите с решением задачи. | Ainur | Помощь студентам | 4 | 23.05.2009 11:26 |
Помогите с решением задачи! | Anuta | Общие вопросы Delphi | 4 | 26.06.2008 20:26 |