data have; input acct_nbr $ custid $ date : date9.; format date date9.; _custid=input(compress(custid,,'kd'),best.); mon=month(date); month=date; format month monyy7.; cards; a1 c11 20Jun2013 a1 c11 15Jul2013 a1 c12 08Aug2013 a1 c11 25Aug2013 a2 c21 20Jun2013 a2 c23 15Jul2013 a2 c21 08Aug2013 a2 c24 25Aug2013 a3 c31 20Jun2013 a3 c32 15Jul2013 a3 c31 08Aug2013 a3 c32 25Aug2013 a3 c31 30Aug2013 ;;;; run; data want (keep=acct_nbr month shift); set have; by acct_nbr mon _custid notsorted; if first.acct_nbr and first.mon then shift=0; if not first.mon and _custid-lag(_custid) ne 0 then shift+1; if last.mon then output; run; proc tabulate data=want; class acct_nbr month; var shift; table acct_nbr=' ',month=' '*shift=' '*sum=' '/box='acct_nbr'; run;
... View more