Hello Excel people..
I have found lots of very helpful fixes and solutions over the years on this forum (thanks!), but this is my first actual post so I'm hoping you may be able to give me some suggestions.
I have several large (100MB - 300MB) Excel files that retrieve MySQL data with ODBC connections. I am struggling with the time they take to recalculate (I've had to turn automatic calculation off) - the largest ones can take up to an hour to completely recalculate even on a high spec PC with loads of RAM etc.
From what I have read the main speed issue is probably the amount of exact match lookups that get completed. I use INDEX(MATCH()) on multiple sheets, some of which have over 100,000 rows so I've been trying to replace these lookups with something less processor intensive.
I understand that this would be an option to look for a value in column A and return the corresponding value in column B:
Sort the data by column A ascending
Check that the value to search for is in column A
If so run a non-exact match (ascending) lookup to return the relevant value from the column B
Since there are multiple sheets containing the lookup data and results I've been trying to carry out the sort using formulas (rather than the Data > Sort menu).
I can easily sort the column A data in another column using SMALL(A:A,ROW()) in each cell. What I'm stuck on is how to keep the corresponding column B values alongside the original column A values (now that column A is sorted). This would be easy using an exact INDEX(MATCH()) lookup but as I mentioned, that is what I need to avoid.
Can anyone see how I can do this, or have any better suggestions on how to speed up the calculations, probably by removing the exact match lookups?
Thanks for your help!
Bookmarks