Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: операции с вычислением дней в месяце Добавлено: 02.12.09 17:35  

Автор вопроса:  oleg
Всем форумчанам доброго дня!
Столкнулся с простой на первый взгляд проблемой. Нужно рассчитать сколько дней в месяце человек трудился, для чего есть исходный период напр. с 10.06.09 по 17.11.09 и нужно разложить его по месяцам: сколько дней в первом месяце, сколько во втором и т.д. и сколько в последнем. Количество дней в месяце соответсвенно равно календарным дням месяцев. Вложенными функциями типа "РАЗНДАТ", "ДНЕЙ360", "ДАТАМЕС", "КОНМЕСЯЦА" корректно сделать расчет не получается. Чем дальше в лес, тем гуще и темнее. Разрыв башки не за горами. Понимаю, что нужно писать код для макроса, а с какой стороны подойти не соображу.
Если есть время посоветуйте путь.
Заранее большой респект всем откликнувшимся.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Millenium



ICQ: 629966 

Вопросов: 118
Ответов: 903
 Web-сайт: www.aliyev.us
 Профиль | | #1
Добавлено: 03.12.09 08:14
У тебя EXcell, на VBA это делается с помощью DateDiff, WeekOfDay, Date, Month, Year, Day и пр. ТУт на сайте есть пример. покопайся. я точно названия не помню, но сталкивался когда-то.

Ответить

Номер ответа: 2
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #2 Добавлено: 03.12.09 11:36
Если есть возможность проставить диапазон дат. то можно вот так:
В ячейке N25 - 10/06/2009, в ячейке N26 - 17/11/2009, в ячейке N30 формула =DATE(YEAR($N$25);1;1)
Ячейки N31 и далее вниз заполнены формулой
  1. =DATE(YEAR(N30);MONTH(N30)+1;1)

В ячейку O30 занести формулу
  1. =IF(DATE(YEAR($N$25);MONTH($N$25);1)>N30;0;IF(DATE(YEAR($N$25);MONTH($N$25);1)=N30;DAY($N$25);IF(N30>DATE(YEAR($N$26);MONTH($N$26);1);0;IF(N30=DATE(YEAR($N$26);MONTH($N$26);1);DAY($N$26);CHOOSE(MONTH(N30);31;IF(MOD(YEAR(N30);4)=0;28;29);31;30;31;30;31;31;30;31;30;31)))))
и проянуть ее до конца диапазона дат.

В тех месяцах когда человек работал, будет количество дней.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам