Роллинг Дата Макро

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

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

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

Как только начало интервала станет 201404, конец интервала перейдет к 201512.

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

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

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

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

Спасибо!

1 ответ

Решение

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

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

=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),"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
Другие вопросы по тегам