Excel Opens Slowly

We open very large excel documents over the network that take between 7 - 10 minutes to calculate formulas or save the document on average. I wouldnt think that updating the formulas would have anything to due with the network since its working in a temp file; however, I could be wrong. When the document opens with automatic calculation the document takes a while to load, if it has manual calculation opens right away. The desktop we're opening them on runs Windows 7 Professional with 8GB of memory with an Intel Core 2 duo E8500 3.17 GHz processor. The network is a 1Gb connection at the serve and a 100Mbps connection on the client so I'm assuming there is a small switch somewhere between. Our first solution was to run the doucments straight off the server; however, it seems to run slower. The server only has 2GB of memory and has a Intel Xeon E5310 1.60 GHz processor. The spreadsheets are about 20MB in size. We need to get these sheets running faster as they run our business. Any ideas would be greatly appreciated.
Who is Participating?
Phillip BurtonConnect With a Mentor Director, Practice Manager and Computing ConsultantCommented:
Are you using User Defined Functions? Are there some huge calculations going on?

At the moment, there's not much to work on, other than there is a lot of calculating happening.
Glenn RayExcel VBA DeveloperCommented:
Do the documents open/calculate faster from locally-saved copies?  This would at least help determine if the network is an issue.

If there is no difference, you'll want to consider replacing any formulas that return record-dependent (i.e., un-changing) values into the actual values instead.  If you have unused columns with repetitive or blank data, remove those.
Do you have settings that cause workbooks to automatically calculate on open or on save?

If you do have user-defined functions, please post that code.  We might spot some performance bottlenecks and suggest alternatives.
Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

TechGuy_007Author Commented:
The user says that the OFFSET function seems to be causing some of the issue.

There are hundreds if not thousands of macros they use.  It is a financial company.  No large/complex calculations are occurring.

The file does seem to operate a bit faster when opened locally.  Strangely enough, the CPU usage while "Calculating" is around 50%.  On the server, all 4 cores are at 100%
can the formulas be rewritten to not use the Offset() function?
Rob HensonFinance AnalystCommented:
A very general tip for improving performance. When Excel recalculates it works from top left to bottom right, therefore it is best to structure your spreadsheet such that calculations won't have to be done repeatedly.

For example, if a formula in B2 relies on the value of Z26 it will calculate B2 based on the current value of Z26 and then when it gets to Z26 and that changes, the value of B2 will have to be recalculated; effectively starting the process over.

Rob H

There isn't much detail of the actual file design but, since any ideas are appreciated, I'll throw a few into the pot for use or consideration against a copy of the file:

- If you are using excel 2007 or newer, try saving the file using the "xlsb file format". It is a binary format & may cause quite a reduction file size.
- Change any formulae that contain full column references (eg "A:A") so that the formulae either refer to dynamic named ranges or Table range references. These ranges can be limited to the number of used rows within the file.
- Is there any setup code (other than UDF's, mentioned by Aikimark) that runs via AutoOpen or WorkbookOpen Event macros (please post it)?
- See Charles Williams' excellent website for lots of suggestions for optimising speed: http://www.decisionmodels.com/optspeed.htm
- To add to Aikimark's suggestion about removing Offset, an alternative approach to Offset is the use of Index:Index & Match.
- If vlookups are used, they could potentially be changed to Index/Match formulae: http://exceluser.com/formulas/why-index-match-is-better-than-vlookup.htm
- Remove as many volatile functions (eg Today(), Now(), Offset(...) etc) as possible & put repeatedly used functions into a single cell, which is then referenced by other formulae.

TechGuy_007Author Commented:
We also tested with a faster computer and it made a noticeable difference.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.