You can use formula also to arrive at this. Your data format is bit inconsistent. e.g. Cell A20 has correct replacement pattern in B20 but that cannot be said for A21.
In cell E2:
=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(A2,"and",""),"&",""))&" "&SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(B2,"and",""),"&","")),TRIM(SUBSTITUTE(SUBSTITUTE(A2,"and",""),"&","")),""),"and",""),"&","")
In cell F2:
=CONCATENATE(LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),1,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),1*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),2*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),3*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),4*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),5*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),6*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),7*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),8*99,99))),LEFT(TRIM(MID(SUBSTITUTE(E2," ",REPT(" ",99)),9*99,99))))
Second formula is long but it is just concatenation of the same logic for joining upto 10 word initials.
Copy down to the last row.