Роллинг Дата Макро
В настоящее время я использую 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