%MACRO LAGLOOP ; data temp3 ; set temp2 ; by accountnum trandate; %DO J = 1 %TO 3000 ; /* %DO J = 1 %TO J le count;*/ lag_&J = lag&J(debit) ; if first.accountnum then do; lag_&J = .; end; %END; run ; %MEND ; %LAGLOOP ; This is the closest I have got to the answer, however the lag_1 etc is not unique to accountnum, its just looking at the previous debit regardless of accountnum: Obs count count2 accountnum trancode trandate Debit lag_1 lag_2 lag_3 lag_4 lag_5 etc 1 1 100001 26 30APR2018 $-2,000.00 . . . . . 3 1 100004 26 02MAY2018 $-1,000.00 . . . . . 1 1 100005 2 08MAY2018 $-1,200.00 . . . . . 2 2 100005 2 22MAY2018 $-1,200.00 -1200.00 -1000.00 -2000.00 . . 30 1 100006 780 07MAY2018 $-51.25 . . . . . 31 2 100006 780 08MAY2018 $-112.25 -51.25 -1200.00 -1200.00 -1000.00 -2000.00 32 3 100006 780 11MAY2018 $-22.50 -112.25 -51.25 -1200.00 -1200.00 -1000.00 33 4 100006 780 15MAY2018 $-26.34 -22.50 -112.25 -51.25 -1200.00 -1200.00 34 5 100006 780 17MAY2018 $-100.65 -26.34 -22.50 -112.25 -51.25 -1200.00 35 6 100006 780 23MAY2018 $-69.30 -100.65 -26.34 -22.50 -112.25 -51.25
... View more