PS.... I wrote:
Arguably, the best methods are implemented in a VBA procedure [3]. But
most people don't want the hassles of dealing with VBA code.
[....]
[3] There is a good implementation somewhere. But I cannot find it at the
moment. I will keep searching for it.
Found it! Refer to
http://www.sulprobil.com/html/largest_remainder.html by
Bernd Plumhoff.
The problem with Bernd's website: I find it very difficult to use. But if
you download his example Excel file, you can usually figure it out -- with
some effort.
Also note that Bernd has a link to an implementation of another algorithm,
the d'Hondt method. In addition to Bernd's information, refer to
http://h2g2.com/dna/h2g2/A2757873.
IMHO, while these might do a better job of distributing rounding error
fairly, I still stick with the methods that I described previously, if only
because they are relatively easy to understand and implement, and their
results are usually "good enough".