Skip to main content
On Opportunity Closed Won, I am using Process Builder to create a child record on the Opportunity that adds one month to the close date (for invoicing). However, my formula keeps adding a year to December (instead of Dec '17, it is giving me Dec '18).

 

Any assistance would be greatly appreciated!!

 

Formula:

 

DATE(

 

year([Opportunity].CloseDate)

 

+ floor((month([Opportunity].CloseDate) + 1)/12) + if(and(month([Opportunity].CloseDate)=12,1>=12),-1,0)

 

,

 

if( mod( month([Opportunity].CloseDate) + 1 , 12 ) = 0, 12 , mod( month([Opportunity].CloseDate) + 1 , 12 ))

 

,

 

min(

 

day([Opportunity].CloseDate),

 

case(

 

max( mod( month([Opportunity].CloseDate) + 1 , 12 ) , 1),

 

9,30,

 

4,30,

 

6,30,

 

11,30,

 

2,28,

 

31

 

)

 

)

 

)
3 件の回答
  1. 2018年2月5日 16:24
    John,

     

    Give this a try...

     

     

    DATE(

    YEAR([Opportunity].CloseDate) + FLOOR((MONTH([Opportunity].CloseDate) + 1 - 1)/12), 

    CASE(

    MOD(MONTH([Opportunity].CloseDate) + 1, 12 ), 0, 12, MOD(MONTH([Opportunity].CloseDate)+ 1, 12 )), MIN(DAY([Opportunity].CloseDate), 

    CASE(

    MOD(MONTH([Opportunity].CloseDate) + 1,12), 9, 30, 4, 30, 6, 30, 11, 30, 2, 

    IF(MOD(YEAR([Opportunity].CloseDate) + FLOOR((MONTH([Opportunity].CloseDate) + 1)/12), 400) = 0 || (MOD(YEAR([Opportunity].CloseDate) + FLOOR((MONTH([Opportunity].CloseDate) + 1)/12), 4) = 0 && MOD(YEAR([Opportunity].CloseDate) + FLOOR((MONTH([Opportunity].CloseDate) + 1)/12), 100) <> 0 

    ),

    29,28),

    31)) 

    )

     

     
0/9000