A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data
Hi Alice Carter,
Welcome to Microsoft Q&A Forum! Have a good day and I hope you're doing well!
I completely understand how frustrating it is to experience repeated spinning‑wheel delays on macOS every time Excel recalculates large numbers of XLOOKUP formulas. This behavior is quite common when working with big datasets on Mac, as Excel’s calculation engine needs to process a significant amount of data at once.
Based on my research into Excel's calculation engine on macOS, the lag usually stems from two main culprits: referencing entire columns (e.g., A:A) and using the default "Linear Search" mode.
Here are three resolutions that should significantly improve your performance:
1. Use Binary Search
By default, XLOOKUP scans your data from top to bottom (Linear Search). If your data is at the bottom of a 100,000-row list, Excel checks 100,000 times.
Sort your lookup array in ascending order and use the search_mode argument set to 2. This switches to a Binary Search algorithm, which is exponentially faster.
- Instead of:
=XLOOKUP(val, A:A, B:B)
Use:=XLOOKUP(val, A1:A100000, B1:B100000, "Not Found", 0, 2)
References:
How to optimize a large XLOOKUP table with volatile data sources? | Microsoft Community Hub
XLOOKUP function - Microsoft Support
2. Avoid Whole Column References
On macOS, referencing A:A forces Excel to allocate memory for over 1 million rows, even if they are empty.
Convert your range to an Excel Table (Cmd + T). This allows you to use structured references that automatically adjust to your data size without checking empty cells.
Example: =XLOOKUP(val, Table1[ID], Table1[Price])
3. Switch to Manual Calculation
If you are doing heavy data entry, this is the quickest temporary fix.
- Go to Formulas > Calculation Options > Manual.
- When you are ready to see the results, simply press Fn + F9 to recalculate once.
If your dataset is extremely large (e.g., 500k+ rows), I highly recommend using Power Query (Data > Get Data) to merge datasets instead of using formulas. It is much lighter on system resources.
I hope this provides you with some helpful insights. If you have any further concerns, please feel free to reach out anytime.
Best regards.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.