I have a Google Spreadsheet document with 15 sheets from which one has like 40 columns with ARRAYFORMULAS and other XLOOKUP and VLOOKUP functions from other sheets and is running slow with a delay that affects the way I can work with it.
Now, that sheet has only 30 rows and I would expect it to have like 50.000 at the end , but if it's working like this I don't know how I could handle more inputs into that sheet as it would be very hard to access it.
I've tried clearing the cache, site data and cookies from Chrome but it didn't do anything ... any suggestions on how I can improve this ?
I need the formulas in that sheet as some columns need to be calculated based on come new input and changes on other columns.
Related
I'm making a budget sheet on google sheets. When I use importrange on my google sheet, it works perfectly fine. However when I use an Xlookup in a different tab and different cell, the Importrange fails and gets stuck on loading. I'm not sure why... It may be because they loosely reference each other? I'm using Xlookups to sum a range which includes some of the imported data... But in my mind, that shouldn't affect the Importrange at all. If you delete all the xlookups, the importrange pushes through, and if there is only 1 Xlookup in the entire sheet, Importrange still works... Can anyone help??? I've linked the sheet below so that you can play with it. You can change the links for the importrange freely.
FYI you have to delete the importrange / refresh the page after each change as the importrange will just keep the data their until there is a change on either the data side or sheet side.
Link to the Sheet
I tried deleting all Xlookups and and changing the Importange Range to lessen the impact
I tried array constraining other formulas in the sheet because I thought it was stuck on too many calculations
I tried simplifying the Xlookup formulas to set ranges.
you can build your IMPORTRANGE like:
=ARRAYFORMULA(IFERROR(NOW()/0)&IMPORTRANGE(D2; "A1:A4"))
and with:
changes won't be instant of course but they will flow more often
I have a Google Sheet that has a main master sheet, with a column for users to fill in their Name to show they are "working" on that row, then that row gets populated to their own tab based on a =QUERY(Master!A3:AA,"select * Where L='Name'") for each of the users' tabs, there is 8 total tabs where users are updating information. This is already quite a bit of processing on Googles part, so I am trying to generate a separate Google Sheet that pulls in the information that the users are entering on each of their tabs so the management can monitor that sheet for updates and then both sheets will run a lot faster/smoother.
I have tried using a VLookup with this syntax: =vlookup(A3,importrange("sheetID",{"Name1!$A$3:$N";"Name2!$A$3:$N";"Name3!$A$3:$N";"Name4!$A$3:$N";"Name5!$A$3:$N";"Name6!$A$3:$N";"Name7!$A$3:$N";"Name8!$A$3:$N"}),12,FALSE) which gives me an #N/A Error, cannot find Value '1' in VLOOKUP evaluation.
I have also tried using a =QUERY({importrange("sheetID"x8 with the ranges)}, "Select Col12,Col13,Col14 where Col2 matches '^.\*($" &B3 & ").\*$'")
That only returns headers, I am trying to get the query to basically find the unique key in Column A then spit out what is in Col 12-14, but that doesn't seem to work either. Columns 1-11 are static, but Columns 12-14 are what I am trying to populate for the management, which is the work that the staff is inputting on each of their tabs.
I can get the query working if I keep it on the same worksheet as the one the staff is working on, but then it bogs down the whole sheet so I would like to keep it separate if possible. Any ideas? I can't provide a sample sheet at this time since it has financial info on it, but I can add more details if I know what to look for.
your formula should be:
=VLOOKUP(A3, {
IMPORTRANGE("sheetID1", "Name1!A3:N");
IMPORTRANGE("sheetID2", "Name2!A3:N");
IMPORTRANGE("sheetID3", "Name3!A3:N");
IMPORTRANGE("sheetID4", "Name4!A3:N");
IMPORTRANGE("sheetID5", "Name5!A3:N");
IMPORTRANGE("sheetID6", "Name6!A3:N");
IMPORTRANGE("sheetID7", "Name7!A3:N");
IMPORTRANGE("sheetID8", "Name8!A3:N")}, 12, 0)
keep in mind that every importrange needs to be run as a standalone formula where you connect your sheets by allowing access. only then you can use the above formula
My team uses a spreadsheet that I have been asked to help optimise. I can't link the sheet because of confidential data but will try and describe the sheet and the issue I am running into.
There is a google form that puts information into a spreadsheet. Lets call that Sheet1. That holds about 4500 rows of information. Sheet2 importranges 5 columns from Sheet1 and then users type notes and information into the other columns in that sheet. Sheet1 and Sheet2 have a 1:1 correspondence but no formula to make sure that the records match each other.
There are about 3000 rows that have a "complete" status.
There are new records being entered into Sheet1 almost daily and Sheet2 needs to remain dynamic.
Because of the amount of people that use the sheet concurrently, the importrange formula and a couple vlookups in Sheet2, Sheet2 is grinding to a slow pace that I have been tasked with trying to optimise.
I've tried:
Considered removing the completed rows. That would mess up the 1:1 correspondence. Im not able to add the completed marker to Sheet1 to re-import only the "open" or not complete cases.
Copy/Paste values on the completed records. This essentially breaks the import range from working on the records below as the importrange needs to have free range basically.
Only copy/paste values the other formula on the completed records. This doesn't alleviate enough of the lag - its the importranges that are basically making everything slow.
What I would like to try next:
Is it possible to use an importrange or similar function to start the import range at row x?
There is not a common key between the records... the data that would make a great common key is in Sheet1 only.
I have a huge year of data and I cannot add it in 1 spreadsheet because of the limitation on the number of cells per workbook/spreadsheet so I separated the huge data into multiple files by month (January, February, March etc).
In my master file/spreadsheet I needed to use a formula to lookup some values from the master spreadsheet and the problem is that the tables to look into are now in multiple monthly spreadsheets. What is the best formula to look up values in multiple spreadsheets?
After googling for a while I don't have much options, I don't even know what the formula is for using Vlookup to find values in a separate spreadsheet instead of another tab. I tried importrange and it seem to still use the limit even though it's in a different spreadsheet I get error when trying to use it because the data is too large.
So you can use IMPORTRANGE to get the columns needed for the vlookup.
=VLOOKUP(D42,IMPORTRANGE("https://docs.google.com/spreadsheets/d/[sheet_id]","Sheet1!D:ZZ"),1,0)
It's not clear if you added the permission needed to access the other workbook when you use IMPORTRANGE
like this
You can also use IMPORTRANGE in the data parameter QUERY(data, query, [headers])
QUERY is awesome when you know your way around SQL. Google Visualization API Query Language
I have a google form that my students fill out daily. All form responses feed into one workbook. From the workbook, I have a spreadsheet for "Clean" data. Which is just the information from the responses sheet needed to graph progress. The formula I am using in A2 is: ='Form Responses 1'!N2
Nothing too complicated right?
However, each day that I want to show the kids their progress on the charts, I have to select the last two entries in the Clean Data worksheet and copydown the formulas in order for the new data to appear. Apparently, every time there is a new form submission, google sheets changes the cell address in the formulas. Is there any way around this?
As JPV commented, the "pushing down of formulae" by form submissions may be counteracted by using an array formula (in row 2):
=ArrayFormula('Form Responses 1'!N2:N)
And as Akshin commented, if you were in fact bringing over a couple of columns for graphing purposes, you can do it all in one with QUERY. For example:
=QUERY('Form Responses 1'!A:N,"select A, N",1)