Why did you flag the last line (START=05MAR2024), but not flag its predecessor (END=04MAR2024)?
In the absence of usable sample data in the form of a working DATA step, here is my untested guess as to what you want.
data want (drop=nxt_:);
set have ;
by chgdt_10 notsorted;
merge have
have (firstobs=2 keep=chgdt_10 start rename=(chgdt_10=nxt_chgdt start=nxt_start)) ;
retain _beg_series _end_series 0;
_beg_series = (first.chgdt_10=1 and chgdt_10^=.);
_end_series = (last.chgdt_10=1 and nxt_chgdt^=.);
flag= (start-1 <= lag(end) and _beg_series=0)
or
(end+1 >= nxt_start and _end_series=0);
run;
This assume that each series
is sorted by START and
starts with a non-missing value for CHGDT_10.
... View more