Forum Discussion
Excel Performance Issue with Linked Workbooks - Data Update Delay
please try these:
Switch to Manual Calculation Mode: If you’re making multiple changes at once, switch to manual calculation mode (Formulas > Calculation Options > Manual). After making all changes, you can then calculate manually by pressing F9.
Disable Background Error Checking: Go to File > Options > Formulas, and uncheck Enable
Ensure only the necessary rows are included in the link. Remove any empty rows or columns from the range, as they add to processing time.
Use dynamic named ranges instead of full column or large ranges. Dynamic ranges adjust automatically based on the data size, which can reduce the recalculation burden.
Avoid volatile functions such as NOW(), TODAY(), RAND(), OFFSET(), and INDIRECT(), as they force recalculation every time any cell changes. If these are necessary, try to use them in a single cell and reference that cell rather than repeating them across rows or columns
Use Power Query for Desktop Excel only Excel online not support it:
Load Once, Refresh When Needed: Use Power Query to import data from Workbook1 to Workbook2. Set Power Query to only refresh on demand rather than auto-refreshing frequently.
Disable Auto-Refresh: Instead of setting Power Query to refresh every minute, set it to refresh only when needed, which reduces processing
If feasible, store your data in a database and use ODBC or SQL connections from Excel. This approach can handle large datasets more efficiently than linking workbooks, and Excel can pull only the data it needs
Use the Excel Data Model instead of linking to other workbooks directly. By importing your data into the data model and creating relationships, you can work with large datasets more effectively.
if you are comfortable with VBA, then create macro that refresh data only when you need e.g. every hour or when button pressed etc.
Sample VBA code that refreshes all data connections in Workbook2 when needed:
Sub RefreshDataConnections()
Application.Calculation = xlCalculationManual
ActiveWorkbook.RefreshAll
Application.Calculation = xlCalculationAutomatic
MsgBox "Data Refreshed"
End Sub