Identifying Recalculation Bottlenecks

Written by Allen Wyatt (last updated September 19, 2026)

3

Kyle has a workbook that is quite calculation intensive, so much that it can take close to a minute for Excel to recalculate. He needs to determine which formulas are causing the slowdown, so he wonders if there are ways he can pinpoint the most calculation-intensive formulas or ranges.

To do any meaningful performance analysis of your workbooks, you are going to have to rely on macros. You could create your own macros to do this, but then you need to question whether such an approach is worthwhile. There are already macro-based tools (add-ins) that are available that can help you track down issues.

If you are using enterprise or Professional Plus version of Microsoft 365, you can use the Inquire add-in to analyze your workbooks. This can be a great help in identifying places your workbook can be improved. You can find out more about the add-in here:

https://support.microsoft.com/en-us/excel/analyze-a-workbook-with-spreadsheet-inquire

If you are a mere mortal who doesn't have access to enterprise or professional versions of Excel, then you need to turn to other tools. Perhaps the best all-around tool is FastExcel, which was developed by Charles Williams of Decision Models. You can find information on it here:

https://www.decisionmodels.com/FastExcelV4.htm

FastExcel is not free but, honestly, neither is Microsoft's Inquire add-in. (It costs additional money to upgrade your version of Excel to the point that you can get the Inquire add-in for free. The cost of the add-in is hidden in the increased cost of the Excel version.) FastExcel runs just over $200, but that isn't that bad of a price if you really want to figure out how to improve the performance of your complex workbooks.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (14005) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024, and Excel in Microsoft 365.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Horizontally Viewing All Your Text

If you are viewing a document and your text runs off the right side of the document window, it can be a real bother to ...

Discover More

Appearance of Excel on the Taskbar

Do you want Excel to use a task button, on the Windows Taskbar, for each of your open worksheets? Then just make this ...

Discover More

Cell Address of a Maximum Value

Finding the maximum value in a range of cells is easy; finding the address of the cell containing that value is a ...

Discover More

Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel Data Analysis and Business Modeling today!

More ExcelTips (ribbon)

Frequent Workbook Recovery Prompts

When you open a workbook, Excel examines that workbook to make sure it can understand the data it contains. This can lead ...

Discover More

Iterating Circular References

Does your data require that you perform calculations using circular references? If so, then you'll want to be aware of ...

Discover More

Changing the Default Font

It makes sense that when Excel creates a blank workbook, it must figure out which font to use for that workbook. ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 4 + 4?

2026-09-20 15:00:44

J. Woolley

Here's a function that returns the time to calculate a Target range of cells. The result is in milliseconds with microsecond resolution. Optional parameter NumToAverage permits averaging to reduce operating system vagaries (which persist anyway); default is 1 to skip averaging. If optional parameter UpdateScreen is TRUE, the screen will update while Target is calculated; default is FALSE to prevent screen updating. This VBA should be located at the beginning of a standard module.

Option Explicit

'NOTE: LongLong applies only to 64-bit Excel.
'Change ALL LongLong to Currency for 32-bit Excel.
'Currency can also be used with 64-bit Excel.

Private Declare PtrSafe Function QueryPerformanceCounter _
    Lib "kernel32" (lpPerformanceCount As LongLong) As Long
Private Declare PtrSafe Function QueryPerformanceFrequency _
    Lib "kernel32" (lpFrequency As LongLong) As Long

Private Function MsecToCalculate(Target As Range, _
    Optional NumToAverage As Integer = 1, _
    Optional UpdateScreen As Boolean = False) As Double
    Dim bUpda As Boolean, nCalc As Integer, n As Integer
    Dim tBeg As LongLong, tEnd As LongLong, tSum As LongLong
    Static tFreq As LongLong
    If tFreq = 0 Then QueryPerformanceFrequency tFreq
    With Application
        bUpda = .ScreenUpdating
        .ScreenUpdating = UpdateScreen
        nCalc = .Calculation
        .Calculation = xlCalculationAutomatic
        For n = 1 To NumToAverage
            QueryPerformanceCounter tBeg
            Target.Dirty 'forces recalc when mode is automatic
            QueryPerformanceCounter tEnd
            tSum = tSum + tEnd - tBeg
        Next n
        .ScreenUpdating = bUpda
        .Calculation = nCalc
    End With
    MsecToCalculate = Round(1000 * tSum / tFreq / NumToAverage, 3)
End Function

Here are some example macros that determine the time to calculate the current selection, the active worksheet, or all worksheets in the active workbook. Results appear in the VB Editor's immediate window. This VBA must be in the same module as the previous VBA.

Sub BenchmarkSelection()
    Debug.Print MsecToCalculate(Selection)
End Sub

Sub BenchmarkActiveSheet()
    Debug.Print MsecToCalculate(ActiveSheet.UsedRange)
End Sub

Sub BenchmarkWorkbook()
    Dim ws As Worksheet, msec As Double, sum As Double
    For Each ws In Worksheets
        msec = MsecToCalculate(ws.UsedRange)
        sum = sum + msec
        Debug.Print ws.Name, msec, sum
    Next ws
End Sub


2026-09-19 07:42:35

Miguel Antonio Suárez

Hi Allen, glad to read your notes you're fine in your new warm corner of the world. And, speaking of good news, I would like tu suggest you include MS Excel Latest News and MS Word Latest News, even MS Windows Latest News in your set of week tools. It would be great bonus of information about MS software latest improvements. Thanks for your attention.


2026-09-19 07:26:16

Elliot Penna

Or you could simply ask Gemini (or other A.I. tool) to identify the bottlenecks.


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.