Поиск месячных интервалов

Моя работа влечет за собой, что я должен рассчитать от 6 до 18 месяцев с определенной даты. У меня есть 2 примера. Пример 1: Моя работа просит меня рассчитать возмещение от наших клиентов. Эти возмещения могут составлять только 18 месяцев, а последняя дата возврата – это день, когда письмо отправляется клиенту. Итак, если письмо с возвратом будет отправлено 28 августа 2012 года, какова первая дата этого периода? Кроме того, что, если это было 29, 30 и 31 августа (08/28/2012 – 08/31/2012). Мои расчеты говорят, что все эти временные периоды имеют 1 марта 2011 года в качестве даты начала. Я использую SAS как программный инструмент. Вот функция, которую я использовал:

eighteen_months = intnx('month',Visit_date,18,'sameday')+1; 

Основное предположение, которое я делаю, составляет 1 месяц, соответствует первой дате первого месяца и последней дате и тому же месяцу (с 01/01/2012 по 31.01.2012). Впоследствии 3 месяца равны первой дате первого месяца и последней дате 3-го месяца (с 01.01.2012 до 03/31/2012 или с 04/01/2012 по 06/30/2012). Вот несколько других 18-месячных вычислений:

  First Date Last Date 10/30/1999 4/29/2001 5/6/2006 11/5/2007 4/30/2012 10/29/2013 4/3/2018 10/2/2019 2/24/2024 8/23/2025 5/10/2026 11/9/2027 

Проблема возникает в случае с моим оригинальным примером с 28 по 31 августа, где 18 месяцев может быть на самом деле 4 раза.

Пример 2: Моя работа также просит меня сделать противоположное, когда у меня есть первое свидание, и мне нужно выяснить промежуток времени от 18 до 18 месяцев. Меня недавно спросили, что такое 6 месяцев, если первое свидание – 06/22/2012? Я ответил 12/21/2012, и мне сказали, что это на самом деле 12/22/2012. Нет реальной документации / логики о том, как это рассчитывается в компании. Вот моя функция в SAS.

  Six_months = intnx('month',Visit_date,6,'sameday')-1; 

Я пытаюсь установить процесс и хотел бы посмотреть, будет ли кто-либо работать в этих процессах на постоянной основе, и если в Excel / SAS есть более простой способ. Любые ответы будут высоко оценены.

Чтобы получить первую дату с последней даты в Excel, попробуйте эту формулу, где Last Date находится в B2

=EDATE(B2,-18)+1

Это работает для ваших 6 перечисленных примеров, а также работает, чтобы вернуться 1 марта 2011 года с 28/29/30/31 августа 2012 года

Функция EDATE, как вы можете догадаться, может использоваться для добавления или вычитания нескольких месяцев с даты, если день не существует в течение этого месяца, например, 30 февраля, а затем по умолчанию используется последний день этого месяца

Многие базы данных поддерживают функцию add_months или dateadd или что-то подобное (включая Teradata). Чтобы получить дату 18 месяцев раньше или позже, вы сделали бы что-то вроде:

 select add_months(LastDate, -18), LastDate 

Я думаю, что отвечает на вопрос до этого . Ответ на вопрос немного сложнее, так как существует несколько дат. Вы можете получить первые и последние такие даты со следующим трюком:

 select add_months(FirstDate, 18) as LastDate1, add_months(FirstDate+1, 18) - 1 as LastDate2 

То есть, add_months возвращает первый день, который соответствует условию 18 месяцев в будущем (я уверен в этом, но не на 100% позитиве для Teradata). Вторая дата – один день до 18 месяцев после следующего дня. Обычно он будет таким же, как и для первой даты, но не всегда.

Это путь грубой силы от Лорина и Дэн

 %MACRO DATES(YEAR, lib); data post.try&lib.; set post.pact; IF DTE_EFFECTIVE LE &year. LE DTE_END THEN DO ELIGMONTH= &year.; FORMAT ELIGMONTH MMDDYY10.; OUTPUT post.TRY&lib.; END; run; %MEND; %DATES (YEAR='01JAN2000'D, LIB=a) %DATES (YEAR='01FEB2000'D, LIB=b) %DATES (YEAR='01MAR2000'D, LIB=c) %DATES (YEAR='01APR2000'D, LIB=d) %DATES (YEAR='01MAY2000'D, LIB=e) %DATES (YEAR='01JUN2000'D, LIB=f) %DATES (YEAR='01JUL2000'D, LIB=g) %DATES (YEAR='01AUG2000'D, LIB=h) %DATES (YEAR='01SEP2000'D, LIB=i) %DATES (YEAR='01OCT2000'D, LIB=j) %DATES (YEAR='01NOV2000'D, LIB=k) %DATES (YEAR='01DEC2000'D, LIB=l) %DATES (YEAR='01JAN2001'D, LIB=m) %DATES (YEAR='01FEB2001'D, LIB=n) %DATES (YEAR='01MAR2001'D, LIB=o) %DATES (YEAR='01APR2001'D, LIB=p) %DATES (YEAR='01MAY2001'D, LIB=q) %DATES (YEAR='01JUN2001'D, LIB=r) %DATES (YEAR='01JUL2001'D, LIB=s) %DATES (YEAR='01AUG2001'D, LIB=t) %DATES (YEAR='01SEP2001'D, LIB=u) %DATES (YEAR='01OCT2001'D, LIB=v) %DATES (YEAR='01NOV2001'D, LIB=w) %DATES (YEAR='01DEC2001'D, LIB=x) %DATES (YEAR='01JAN2002'D, LIB=y) %DATES (YEAR='01FEB2002'D, LIB=z) %DATES (YEAR='01MAR2002'D, LIB=aa) %DATES (YEAR='01APR2002'D, LIB=bb) %DATES (YEAR='01MAY2002'D, LIB=cc) %DATES (YEAR='01JUN2002'D, LIB=dd) %DATES (YEAR='01JUL2002'D, LIB=ee) %DATES (YEAR='01AUG2002'D, LIB=ff) %DATES (YEAR='01SEP2002'D, LIB=gg) %DATES (YEAR='01OCT2002'D, LIB=hh) %DATES (YEAR='01NOV2002'D, LIB=ii) %DATES (YEAR='01DEC2002'D, LIB=jj) %DATES (YEAR='01JAN2003'D, LIB=kk) %DATES (YEAR='01FEB2003'D, LIB=ll) %DATES (YEAR='01MAR2003'D, LIB=mm) %DATES (YEAR='01APR2003'D, LIB=nn) %DATES (YEAR='01MAY2003'D, LIB=oo) %DATES (YEAR='01JUN2003'D, LIB=pp) %DATES (YEAR='01JUL2003'D, LIB=qq) %DATES (YEAR='01AUG2003'D, LIB=rr) %DATES (YEAR='01SEP2003'D, LIB=ss) %DATES (YEAR='01OCT2003'D, LIB=tt) %DATES (YEAR='01NOV2003'D, LIB=uu) %DATES (YEAR='01DEC2003'D, LIB=vv) %DATES (YEAR='01JAN2004'D, LIB=ww) %DATES (YEAR='01FEB2004'D, LIB=xx) %DATES (YEAR='01MAR2004'D, LIB=yy) %DATES (YEAR='01APR2004'D, LIB=zz) %DATES (YEAR='01MAY2004'D, LIB=aa) %DATES (YEAR='01JUN2004'D, LIB=bb) %DATES (YEAR='01JUL2004'D, LIB=cc) %DATES (YEAR='01AUG2004'D, LIB=dd) %DATES (YEAR='01SEP2004'D, LIB=ee) %DATES (YEAR='01OCT2004'D, LIB=ff) %DATES (YEAR='01NOV2004'D, LIB=gg) %DATES (YEAR='01DEC2004'D, LIB=hh) %DATES (YEAR='01JAN2005'D, LIB=ii) %DATES (YEAR='01FEB2005'D, LIB=jj) %DATES (YEAR='01MAR2005'D, LIB=kk) %DATES (YEAR='01APR2005'D, LIB=ll) %DATES (YEAR='01MAY2005'D, LIB=mm) %DATES (YEAR='01JUN2005'D, LIB=nn) %DATES (YEAR='01JUL2005'D, LIB=oo) %DATES (YEAR='01AUG2005'D, LIB=pp) %DATES (YEAR='01SEP2005'D, LIB=qq) %DATES (YEAR='01OCT2005'D, LIB=rr) %DATES (YEAR='01NOV2005'D, LIB=ss) %DATES (YEAR='01DEC2005'D, LIB=tt) %DATES (YEAR='01JAN2006'D, LIB=uu) %DATES (YEAR='01FEB2006'D, LIB=vv) %DATES (YEAR='01MAR2006'D, LIB=ww) %DATES (YEAR='01APR2006'D, LIB=xx) %DATES (YEAR='01MAY2006'D, LIB=yy) %DATES (YEAR='01JUN2006'D, LIB=zz) %DATES (YEAR='01JUL2006'D, LIB=aaa) %DATES (YEAR='01AUG2006'D, LIB=bbb) %DATES (YEAR='01SEP2006'D, LIB=ccc) %DATES (YEAR='01OCT2006'D, LIB=ddd) %DATES (YEAR='01NOV2006'D, LIB=eee) %DATES (YEAR='01DEC2006'D, LIB=fff) %DATES (YEAR='01JAN2007'D, LIB=ggg) %DATES (YEAR='01FEB2007'D, LIB=hhh) %DATES (YEAR='01MAR2007'D, LIB=iii) %DATES (YEAR='01APR2007'D, LIB=jjj) %DATES (YEAR='01MAY2007'D, LIB=kkk) %DATES (YEAR='01JUN2007'D, LIB=lll) %DATES (YEAR='01JUL2007'D, LIB=mmm) %DATES (YEAR='01AUG2007'D, LIB=nnn) %DATES (YEAR='01SEP2007'D, LIB=ooo) %DATES (YEAR='01OCT2007'D, LIB=ppp) %DATES (YEAR='01NOV2007'D, LIB=qqq) %DATES (YEAR='01DEC2007'D, LIB=rrr) %DATES (YEAR='01JAN2008'D, LIB=sss) %DATES (YEAR='01FEB2008'D, LIB=ttt) %DATES (YEAR='01MAR2008'D, LIB=uuu) %DATES (YEAR='01APR2008'D, LIB=vvv) %DATES (YEAR='01MAY2008'D, LIB=www) %DATES (YEAR='01JUN2008'D, LIB=xxx) %DATES (YEAR='01JUL2008'D, LIB=yyy) %DATES (YEAR='01AUG2008'D, LIB=zzz) %DATES (YEAR='01SEP2008'D, LIB=aaaa) %DATES (YEAR='01OCT2008'D, LIB=bbbb) %DATES (YEAR='01NOV2008'D, LIB=cccc) %DATES (YEAR='01DEC2008'D, LIB=dddd) %DATES (YEAR='01JAN2009'D, LIB=eeee) %DATES (YEAR='01FEB2009'D, LIB=ffff) %DATES (YEAR='01MAR2009'D, LIB=gggg) %DATES (YEAR='01APR2009'D, LIB=hhhh) %DATES (YEAR='01MAY2009'D, LIB=iiii) %DATES (YEAR='01JUN2009'D, LIB=jjjj) %DATES (YEAR='01JUL2009'D, LIB=kkkk) %DATES (YEAR='01AUG2009'D, LIB=llll) %DATES (YEAR='01SEP2009'D, LIB=mmmm) %DATES (YEAR='01OCT2009'D, LIB=nnnn) %DATES (YEAR='01NOV2009'D, LIB=oooo) %DATES (YEAR='01DEC2009'D, LIB=pppp) %DATES (YEAR='01JAN2010'D, LIB=qqqq) %DATES (YEAR='01FEB2010'D, LIB=rrrr) %DATES (YEAR='01MAR2010'D, LIB=ssss) %DATES (YEAR='01APR2010'D, LIB=tttt) %DATES (YEAR='01MAY2010'D, LIB=uuuu) %DATES (YEAR='01JUN2010'D, LIB=vvvv) %DATES (YEAR='01JUL2010'D, LIB=wwww) %DATES (YEAR='01AUG2010'D, LIB=xxxx) %DATES (YEAR='01SEP2010'D, LIB=yyyy) %DATES (YEAR='01OCT2010'D, LIB=zzzz) %DATES (YEAR='01NOV2010'D, LIB=aaaaa) %DATES (YEAR='01DEC2010'D, LIB=bbbbb) %DATES (YEAR='01JAN2011'D, LIB=ccccc) %DATES (YEAR='01FEB2011'D, LIB=ddddd) %DATES (YEAR='01MAR2011'D, LIB=eeeee) %DATES (YEAR='01APR2011'D, LIB=fffff) %DATES (YEAR='01MAY2011'D, LIB=ggggg) %DATES (YEAR='01JUN2011'D, LIB=hhhhh) %DATES (YEAR='01JUL2011'D, LIB=iiiii) %DATES (YEAR='01AUG2011'D, LIB=jjjjj) %DATES (YEAR='01SEP2011'D, LIB=kkkkk) %DATES (YEAR='01OCT2011'D, LIB=lllll) %DATES (YEAR='01NOV2011'D, LIB=mmmmm) %DATES (YEAR='01DEC2011'D, LIB=nnnnn) %DATES (YEAR='01JAN2012'D, LIB=ooooo) %DATES (YEAR='01FEB2012'D, LIB=ppppp) %DATES (YEAR='01MAR2012'D, LIB=qqqqq) %DATES (YEAR='01APR2012'D, LIB=rrrrr) %DATES (YEAR='01MAY2012'D, LIB=sssss) %DATES (YEAR='01JUN2012'D, LIB=ttttt) %DATES (YEAR='01JUL2012'D, LIB=uuuuu) %DATES (YEAR='01AUG2012'D, LIB=vvvvv) %DATES (YEAR='01SEP2012'D, LIB=wwwww) %DATES (YEAR='01OCT2012'D, LIB=xxxxx) %DATES (YEAR='01NOV2012'D, LIB=yyyyy) %DATES (YEAR='01DEC2012'D, LIB=zzzzz) %DATES (YEAR='01JAN2013'D, LIB=aaaaaa) %DATES (YEAR='01FEB2013'D, LIB=bbbbbb) %DATES (YEAR='01MAR2013'D, LIB=cccccc) %DATES (YEAR='01APR2013'D, LIB=dddddd) %DATES (YEAR='01MAY2013'D, LIB=eeeeee) %DATES (YEAR='01JUN2013'D, LIB=ffffff) %DATES (YEAR='01JUL2013'D, LIB=gggggg) %DATES (YEAR='01AUG2013'D, LIB=hhhhhh) %DATES (YEAR='01SEP2013'D, LIB=iiiiii) %DATES (YEAR='01OCT2013'D, LIB=jjjjjj) %DATES (YEAR='01NOV2013'D, LIB=kkkkkk) %DATES (YEAR='01DEC2013'D, LIB=llllll) data post.final; set post.TRYa post.TRYb post.TRYc post.TRYd post.TRYe post.TRYf post.TRYg post.TRYh post.TRYi post.TRYj post.TRYk post.TRYl post.TRYm post.TRYn post.TRYo post.TRYp post.TRYq post.TRYr post.TRYs post.TRYt post.TRYu post.TRYv post.TRYw post.TRYx post.TRYy post.TRYz post.TRYaa post.TRYbb post.TRYcc post.TRYdd post.TRYee post.TRYff post.TRYgg post.TRYhh post.TRYii post.TRYjj post.TRYkk post.TRYll post.TRYmm post.TRYnn post.TRYoo post.TRYpp post.TRYqq post.TRYrr post.TRYss post.TRYtt post.TRYuu post.TRYvv post.TRYww post.TRYxx post.TRYyy post.TRYzz post.TRYaa post.TRYbb post.TRYcc post.TRYdd post.TRYee post.TRYff post.TRYgg post.TRYhh post.TRYii post.TRYjj post.TRYkk post.TRYll post.TRYmm post.TRYnn post.TRYoo post.TRYpp post.TRYqq post.TRYrr post.TRYss post.TRYtt post.TRYuu post.TRYvv post.TRYww post.TRYxx post.TRYyy post.TRYzz post.TRYaaa post.TRYbbb post.TRYccc post.TRYddd post.TRYeee post.TRYfff post.TRYggg post.TRYhhh post.TRYiii post.TRYjjj post.TRYkkk post.TRYlll post.TRYmmm post.TRYnnn post.TRYooo post.TRYppp post.TRYqqq post.TRYrrr post.TRYsss post.TRYttt post.TRYuuu post.TRYvvv post.TRYwww post.TRYxxx post.TRYyyy post.TRYzzz post.TRYaaaa post.TRYbbbb post.TRYcccc post.TRYdddd post.TRYeeee post.TRYffff post.TRYgggg post.TRYhhhh post.TRYiiii post.TRYjjjj post.TRYkkkk post.TRYllll post.TRYmmmm post.TRYnnnn post.TRYoooo post.TRYpppp post.TRYqqqq post.TRYrrrr post.TRYssss post.TRYtttt post.TRYuuuu post.TRYvvvv post.TRYwwww post.TRYxxxx post.TRYyyyy post.TRYzzzz post.TRYaaaaa post.TRYbbbbb post.TRYccccc post.TRYddddd post.TRYeeeee post.TRYfffff post.TRYggggg post.TRYhhhhh post.TRYiiiii post.TRYjjjjj post.TRYkkkkk post.TRYlllll post.TRYmmmmm post.TRYnnnnn post.TRYooooo post.TRYppppp post.TRYqqqqq post.TRYrrrrr post.TRYsssss post.TRYttttt post.TRYuuuuu post.TRYvvvvv post.TRYwwwww post.TRYxxxxx post.TRYyyyyy post.TRYzzzzz post.TRYaaaaaa post.TRYbbbbbb post.TRYcccccc post.TRYdddddd post.TRYeeeeee post.TRYffffff post.TRYgggggg post.TRYhhhhhh post.TRYiiiiii post.TRYjjjjjj post.TRYkkkkkk post.TRYllllll ;run; 
  • Почему SSIS игнорирует последний столбец моего импорта из источника Excel?
  • SQL в Excel VBA Синтаксис
  • Как разбить большой набор данных на несколько таблиц Excel с помощью пакета SSIS?
  • Импорт данных Excel в SQL Server 2005
  • Запуск сохраненного Proc через соединение Excel - работает в SSMS, но не через макрос VBA
  • Secure? Преобразование функций Excel в веб-скрипт
  • подключение к mysql от excel: драйвер ODBC не поддерживает запрашиваемые свойства
  • Справочные данные пользовательской формы в выражениях excel vba sql?
  • Не удалось экспортировать данные на лист Excel
  • Excel Add-On для отображения данных из (My) базы данных SQL
  • Заполните пустые ячейки в листе excel (или SQLite) со значением ближайшей заполненной ячейки выше
  • Interesting Posts

    Получение Excel для завершения работы после взаимодействия

    объединение нескольких сводных таблиц в другую сводную таблицу

    Использование excel для проверки источников данных

    Скопируйте лист, используя его кодовое имя, и поместите его после кодового имени указанного листа

    Получение индекса листа из имени листа в VBA

    Скопировать формулу Excel в последнюю строку на нескольких рабочих листах

    Формула Excel, чтобы получить подсчет определенного значения на основе нечетной / четной линии

    Почему имя поля PivotTable считается недопустимым и / или мои данные рассматриваются как не упорядоченные как список с помеченными столбцами?

    цикл через диапазон из двух столбцов

    Динамическая диаграмма Не выбор правильных данных – хотя и правильный СМЕЩЕНИЕ

    Убедитесь, что рабочая книга excel открыта?

    Собирать имена столбцов из электронной таблицы Excel в Java

    Невозможно развернуть .Net DLL на машинах, отличных от исходной компилируемой машины

    Спецификатор динамического текста

    Разделение идентифицированного диапазона электронных таблиц на новую книгу с новым именем

    Давайте будем гением компьютера.