Before applying any fixes, identify whether the slowness is during calculation (the file lags after you type) or opening/saving (it takes a long time to load). Calculation slowness points to fixes 1–5 and 7. Opening/saving slowness points to fixes 6, 8, and 9.
Remove or Replace Volatile Functions
Volatile functions recalculate every time any cell in the workbook changes — even if they have nothing to do with what changed. The main offenders: NOW(), TODAY(), RAND(), RANDBETWEEN(), OFFSET(), INDIRECT(), and INFO(). A workbook with hundreds of INDIRECT() formulas recalculates the entire sheet on every keystroke.
Fix: Replace OFFSET() with INDEX() for range references — INDEX is non-volatile. Replace INDIRECT() with direct cell references where possible. Use TODAY() in a single dedicated cell and reference that cell from other formulas rather than using TODAY() in every formula.
Replace Full-Column References with Defined Ranges
Formulas like =SUMIF(A:A, "X", B:B) force Excel to check all 1,048,576 rows in the column — even if your data only has 500 rows. With dozens of such formulas, calculation time multiplies rapidly.
Fix: Replace A:A with A1:A5000 (or whatever your actual data range is). If data grows, use an Excel Table — Table references like =SUMIF(Table1[Category], "X", Table1[Amount]) are dynamic but only check rows that actually contain data.
Reduce Excessive Conditional Formatting
Conditional formatting rules are evaluated on every recalculation. A workbook with thousands of individual conditional formatting rules (often created by copy-pasting formatted ranges many times) can become extremely slow.
Fix: Go to Home → Conditional Formatting → Manage Rules → Show formatting rules for: This Worksheet. Look for duplicate or fragmented rules — for example, the same rule applied to A1:A1, A2:A2, A3:A3 individually rather than A1:A3. Merge them into single rules. Delete rules that are no longer needed.
Delete Unused Named Ranges
Every named range is evaluated at recalculation time. Workbooks that have been in use for years often accumulate dozens of orphaned named ranges — names that reference deleted sheets or cells that no longer exist, showing #REF! in the Name Manager.
Fix: Go to Formulas → Name Manager. Sort by the "Refers To" column. Delete any names showing #REF! or pointing to sheets or cells that no longer exist. This is a quick win that many people overlook.
Fix or Remove Array Formulas (CSE Formulas)
Legacy array formulas (entered with Ctrl+Shift+Enter, shown with curly braces) are significantly slower than regular formulas because they calculate across entire arrays. A large array formula can be as slow as thousands of regular formulas.
Fix: Where possible, replace CSE array formulas with SUMPRODUCT (which handles arrays without being entered with Ctrl+Shift+Enter and is often faster). In Microsoft 365, XLOOKUP, FILTER, and other dynamic array functions are faster replacements for many legacy array formulas.
Remove Unnecessary Data Connections and External Links
Every external link to another workbook requires Excel to either open that file or check if it has changed. Workbooks with many stale external links (pointing to files that have been moved or deleted) can take minutes to open as Excel tries to resolve each link.
Fix: Go to Data → Edit Links. Click "Break Link" on any connections to external files you no longer need. For active links you want to keep, click "Check Status" to verify they are still valid.
Switch to Manual Calculation Mode While Editing
When your workbook has thousands of formulas, switching to manual calculation mode stops Excel from recalculating after every change — so you can make all your edits quickly and recalculate when done.
Fix: Go to Formulas → Calculation Options → Manual. Make your edits. Press F9 to recalculate when you are ready. Switch back to Automatic when done. Warning: remember to recalculate before saving — manual mode means stale values will be saved if you forget to press F9.
Reduce File Size by Clearing Unused Cells
Excel tracks the "used range" of each sheet — the rectangle from A1 to the last cell that has ever contained data or formatting. If someone once typed in cell XFD1048576 (the last cell) and deleted it, Excel still includes that cell in its used range, inflating file size and slowing operations.
Fix: Press Ctrl+End to jump to the last used cell. If it is far beyond your actual data, select the rows and columns beyond your real data, right-click → Delete (not just clear — delete). Save the file. The used range resets to your actual data.
Convert Finished Formulas to Values
If certain calculated results never need to change — historical records, archived data, one-time imports — convert those formulas to static values. Formulas that never change still take calculation time on every recalculate.
Fix: Select the range of finished formulas. Copy (Ctrl+C). Paste Special (Ctrl+Alt+V) → Values → OK. The formulas are replaced with their current results and removed from the calculation chain. Do this only for data you are certain will not change.
Quick Diagnosis: What Is Slowing Your File Down?
- →Lags after every keystroke → Volatile functions (fix 1) or full-column references (fix 2)
- →Slow to open → External links (fix 6) or large file size (fix 8)
- →Freezes during recalculate → Array formulas (fix 5) or excessive conditional formatting (fix 3)
- →File size is unexpectedly large → Bloated used range (fix 8) or unconverted formulas (fix 9)
- →Slow after many copy-paste operations → Fragmented conditional formatting rules (fix 3)
Frequently Asked Questions
My file is slow even with only a few hundred rows. Why?
Row count is rarely the cause of slowness. A 200-row file with 50 INDIRECT() formulas and 200 conditional formatting rules can be slower than a 100,000-row file with straightforward SUM formulas. Check for volatile functions and fragmented formatting rules first.
Will saving as .xlsx instead of .xls speed things up?
Slightly — the .xlsx format is more compressed and opens faster. But the bigger gains come from fixing the formula issues listed above. Use File → Save As → .xlsx if you are still on the older format.
How do I know if my file has volatile functions?
Press Ctrl+F and search for INDIRECT(, OFFSET(, NOW(, TODAY(, RAND( one at a time. The count of results tells you how many instances you have. Then use the ExcelErrorFinder audit tool to get a full inventory of formula patterns across all sheets.