Don't give up yet. I'm sure we can get what you want here.
Apologies for forgetting about the Excel point. You mentioned it earlier, but I guess it went straight in one eye and out the other.
Forget about the subreport, and try this modified approach, (which I admit I haven't tested, so suck it and see):
stringvar y;
stringvar z;
if instr(z,{your.field}) = 0 then
if instr(y,{your.field}) = 0 then
if trim

= ''
then
if length(z) + length({your.field}) > 254
then y := y + {your.field}
else z := z + {your.field}
else
if length

+ length({your.field}) > 254
then y := y
else y := y + {your.field}
else z = z
else y = y;
Use this once for the Needs. Duplicate the formula and use it again for the Schools - obviously with different variables.
Naith