I had a similar problem and also had a column (a subreport) that sometimes evaluates to null. This is what works for me.
In the main report I created a formula that contains a single space. My main report contains a field that allows me to determine whether or not the subreport will have data for a particular detail record. My blank space formula field is aligned with but behind the subreport. In the format editor, common tab, the suppress property is checked and X+2 contains a formula to evaluate whether or not the subreport will contain data. If not, the the blank space is there to preserve horizontal alignment.
I also had the problem of the data breaking to a new line at the subreport when opened in Excel. I tried all of the alignment checks that lbass mentions but nothing worked. Finally, I found that, rather than have CR export to an xls file, export to a TAB delimited file (ttx) and then import it into Excel using the Data->Import External Data menu. The data now import without blank lines, records breaking over one or more lines, etc. The only problem I still have not solved is that some fields with long text strings display as "XXXXXXXXXXXXXXXXXXXXX..." although the data are there. Shorter strings in the same field display properly.
Peter