2013-07-23 4 views
0

현재 Office 2003을 사용하여 롤 예측을 만듭니다. 특정 간격으로 자동으로 채워야하는 시간 간격 (yr/yr/월)에 대한 시작점과 끝점이 있습니다 (버튼이나 그 종류의 것에 할당 할 수있는 매크로가 필요합니다). 나는 VB 코드하는 법을 모르며, 나는이 라인을 따라 뭔가를 기록 할 수있는 방법을 공식화하려고 애 쓰고있다. 그래서, 나는 약간의 도움을 사용할 수 있습니다.롤링 날짜 매크로

시작하려면 , 나는

간격의 시작되면 (예를 들어, 다음 달 간격이 201309-201412 될 것이다) 나는 지난 달 드롭해야 201308-201412

매월 간격이 필요합니다 201404가되면 간격의 끝이 201512로 점프합니다.

이 과정은 지난 달이 간격의 시작 부분에서 떨어지는 경우 계속됩니다.

201504가 간격의 시작 부분이되면 201612가 간격의 끝이됩니다 (지난 달이 삭제되기 전에 201512였던 내용).

또한 월에 따라 줄이 삭제되거나 추가되기 때문에 중복되는 데이터를 피하기 위해 줄을 다시 삽입 할 수있는 방법이 있습니까? (나는 또한 TM1을 사용하고 있으며,이 날짜와 함께 여행 할 DBRW 수식을 가지고 있습니다. 시트릭스/tm1에 익숙하다면)

내가 다른 것을 설명 할 수 있는지 알려 주시기 바랍니다.

감사합니다.

답변

0

매크로가 필요 없다고 생각합니다. 중첩 된 일부 내장 함수가 수행합니다. 시작 간격

공식 :

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

이 확인 :

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

이 기본적으로 간격을 종료 오늘날

식에 다음 달의 "YYYYMM"로 포맷 된 날짜를 반환 오늘의 달이 4보다 큰 경우, 그렇지 않으면 내년 12 월까지 끝 간격을 이동하십시오. 그렇지 않으면 올해의 12 월으로 유지하십시오.

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 
:

여기에 사용되는 몇 가지 공식이있다