2013-07-23 3 views
0

В настоящее время я использую Office 2003 для создания прогнозируемого прогноза. У меня есть начальная точка и конечная точка для временного интервала (год/месяц до года/месяц), который мне нужно заполнить автоматически через определенные промежутки времени (мне просто нужен макрос, который я могу назначить кнопке или что-то в этом роде). Я не знаю, как кодировать vB, и у меня возникли проблемы с попыткой сформулировать способ, которым я мог бы записывать что-то в этих строках. Поэтому я мог бы помочь.Rolling Date Macro

Для начала мне нужен интервал 201308-201412

Каждый месяц я должен был бы упасть в прошлом месяце (например, в следующем месяце интервал станет 201309-201412)

После начала интервала стал 201404, конец интервала перескочит до 2015 года.

Этот процесс продолжается, когда последний месяц сбрасывается с начала интервала.

Как только 201504 станет началом интервала, 201612 станет окончанием интервала (то, что было 201512 года до того, как был отброшен последний месяц).

Кроме того, поскольку строки будут удаляться/добавляться в зависимости от месяца, есть ли способ сделать строки снова вставленными, чтобы избежать дублирования данных? (Я также использую TM1, и у меня есть формулы DBRW, которые будут путешествовать с этими датами - если вы знакомы с citrix/tm1)

Сообщите мне, могу ли я объяснить что-нибудь еще.

Спасибо!

ответ

0

Я не думаю, что вам нужен макрос здесь. Будет выполнена некоторая вложенная встроенная функция.

Формула для исходного интервала:

=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),"yyyymm") 

В основном это возвращает дату, отформатированную как "YYYYMM" следующего месяца с сегодняшнего дня

Формула для окончания интервала:

=IF(MONTH(TODAY())>4,TEXT(DATE(YEAR(TODAY())+1,12,1),"yyyymm"),TEXT(DATE(YEAR(TODAY()),12,1),"yyyymm")) 

Проверяется если сегодняшний месяц больше 4, если это так перейдет к концу следующего года в декабре следующего года, в противном случае сохранить его в декабре этого года.

Есть несколько формул, используемых здесь:

TEXT(value,format) - this returns a formatted text 
DATE(YEAR,MONTH,DAY) - this returns a date 
YEAR(date_serial) - this returns the year from a date serial 
MONTH(date_serial) - this returns the month from a date serial 
DAY(date_serial) - this returns the day from a date serial 
IF(logic,true,false) - if statement in Excel 
TODAY() - this returns today's date serial