You use a compute block on the selected columns. See my paper on Proc Report at www2.sas.com/proceedings/forum2008/079-2008.pdf. Dave Lewandowski data sales; input zone $ sub_zone $ sale_month $ product $ sales; datalines; East East1 201501 Product1 100 East East2 201501 Product1 150 East East1 201502 Product1 150 East East2 201502 Product1 200 West West1 201501 Product1 100 West West2 201501 Product1 150 West West1 201502 Product1 150 West West2 201502 Product1 200 East East1 201501 Product2 200 East East2 201501 Product2 250 East East1 201502 Product2 300 East East2 201502 Product2 400 West West1 201501 Product2 200 West West2 201501 Product2 250 West West1 201502 Product2 300 West West2 201502 Product2 400 ; proc report data=sales missing headline; column zone sub_zone sale_month,product,sales prod1sum prod2sum; define zone / group width= 10 'Zone'; define sub_zone / group width= 10 'Sub-Zone'; define sale_month / across ''; define product / across ''; define sales / analysis sum format=4.0 ''; define prod1sum / computed 'Product 1 Sum'; define prod2sum / computed 'Product 2 Sum'; break after zone / ol skip summarize suppress; rbreak after / dol summarize; compute prod1sum; prod1sum = sum(_C3_,_C5_); endcompute; compute prod2sum; prod2sum = sum(_C4_,_C6_); endcompute; run; 201501 201502 Prod Prod Prod Prod uct1 uct2 uct1 uct2 Product Product Zone Sub-Zone 1 Sum 2 Sum -------------------------------------------------------------------- East East1 100 200 150 300 250 500 East2 150 250 200 400 350 650 ---- ---- ---- ---- --------- --------- 250 450 350 700 600 1150 West West1 100 200 150 300 250 500 West2 150 250 200 400 350 650 ---- ---- ---- ---- --------- --------- 250 450 350 700 600 1150 ==== ==== ==== ==== ========= ========= 500 900 700 1400 1200 2300
... View more