Try this and drag down and across

B2=IFERROR(MID(SUBSTITUTE(TRIM(IF(INDIRECT(ADDRESS (ROW(),1))<>"",$A$2,$B$1))," ","x"),IF(INDIRECT(ADDRESS(ROW(),1))<>"",COLUMN(A1 ),ROW(A1)),1),"")