Как я уже упоминал в комментарии, двузначное число проблематично. Поэтому я не включаю м3, м4 для вывода. Используйте «ft» в качестве указателя, так как он похож на серийный номер (не так ли?). Получите длину o2, чтобы убедиться, что между o2 и o5 нет перекрытия.
data fttry1;
input ft m1 o2 m3 m4 o5;
datalines;
1 2 3 4 5 6
2 7 8 9 10 11
3 12 13 14 15 20
4 16 17 18 19 21
;
run;
data fttry2;
set fttry1;
file print notitles;
by ft;
put @10 ft
@30 M1
@(31+2*ft) o2
@(31+2*ft+length(cats(o2))) o5;
run;