For those who don't like to download from another hosting service, it seems like it should be possible to illustrate your spreadsheet with smaller lookup tables in "postage", since that seems to be where a lot of the data storage is.
A couple of things I see:
1) There appear to be a lot of lookups within the "circular reference" section. Each of these lookups is using a less efficient "linear" search algorithm, because you are forcing an exact match (4th argument of VLOOKUP() function is FALSE). Binary search (4th argument is TRUE and lookup table is sorted in ascending order) is much faster than a linear search. You might look at your lookup table and your lookups and see if you can arrange them to use the much more efficient binary search algorithm.
2) For a given row, it seems that all of the lookup functions are essentially looking for the same thing -- where is the value in column P in the lookup table. You might consider a strategy I suggested here (
http://www.excelforum.com/showthread...=1#post4041181 ) where you perform the lookup once per row with a MATCH() function, then use several INDEX() functions to extract the desired information.
3) I have not thoroughly explored the iterative calculation. Clearly if you can rearrange the calculation to not require a circular logic, you can reduce the calculation time by reducing the number of calculations per calculate event. Iteration can dramatically increase the number of calculations, so eliminating the circular reference can yield significant savings.
That should be a start.
Bookmarks