There's several things here:
Firstly, format only affects the way matlab displays numbers at the command prompt. It does not affect what is stored, and it does not affect how they're displayed in the variable editor. Since it does not affect what is stored, a corrolary is that it does not affect the way numbers are exported to excel, text files, or any other file format.
If you set format bank and display your cell array at the command line (with e.g celldisp) then numbers will indeed show with 2 decimals. If that's not the case for you, then you've found a bug. But again, that doesn't affect the numbers themselves, matlab still store them to full precision (~16 decimal digits)
If you want to change the precision with which the numbers are stored, you do need to use round. If your data is stored in a cell array, then round needs to be applied to each cell of the cell array, not to the cell array itself. It's not very clear what you have exactly, something like:
roundedcellarray = cellfun(@(m) round(m, 2), yourcellarray, 'UniformOutput', false);
You should not be pasting data between matlab and excel (or vice-versa), there are much more reliable ways of transfering data between the two, such as writetable, readtable, writematrix, readmatrix, etc. Again, it's not very clear what you are doing.