I cant import data from another big sheet - google-sheets

Im having trouble importing data from my another sheet. Its quite big, has over 500 rows and to 100 columns. (I dont know if thats important but it has about 50 sheets, I want to import from first biggest one)
Importhtml and importdata take too long to load and then say that source is too big.
But what I want is importrange and that says internal error all the time.
Do you have any advice how can I import my data? Maybe even how to change source so it can be imported from?
Sheet I want import to

The function to use is IMPORTRANGE
=IMPORTRANGE("XXXXXXXXXX";"Prices!A1:AJ")
(where XXXXXXXXX is the sheet ID)
Pro tip
But what I want is importrange and that says internal error all the time.
A good practice is to first link the two sheets by using a very small range like:
=IMPORTRANGE("XXXXXXXXXX";"Prices!A1:A3")
and then change the range to meet your needs
=IMPORTRANGE("XXXXXXXXXX";"Prices!A1:AJ")

Try coupler.io.
It has a free plan and allows to COPY the data from one spreadsheet to another on a schedule. It means you can split your calculations, make heavy ones on one spreadsheet and then copy results to the one when you work with them.
It also allows to import from CRM, financial apps etc, but your case is covered with GSheet -> Gsheet import.

Related

combine data from selected sheets

I have a spreadsheet that has a lot of sheets of data grouped by category. I have a main sheet that I want a user to be able to choose which categories of data to use, and it will pull that data into one long list.
Here is an example spreadsheet of what I want to do: LINK TO SHEET
I could combine all the data into one spreadsheet, but if I were to do that with the dataset I am working with, I would have tens of thousands of rows. So, having the data stored on separate sheets is preferred. I am open to having separate spreadsheets altogether if that will make it easier. Currently, I have tried Using INDIRECT and QUERY, but can only get the first sheet of data to show.
I would prefer to stick to normal functions, but could jump into appscript if I need to create a custom formula
I have tried using INDIRECT and CONCAT, and can get the first set of data, but not subsequent data. Also tried wrapping it in a query like this:
=QUERY({ARRAYFORMULA(INDIRECT(CONCAT(A2:A,"!a2:z100"))},"select * where Col1 is not null",1))
Splitting it up into separate spreadsheets, I was able to use the function:
=QUERY({ARRAYFORMULA(IMPORTRANGE(B2:B,"A1:Z10"))},"select * where Col1 is not null",1)
But it also would only pull the first set of data, not the subsequent rows.
All of this was me first attempting to get the information, not getting the information filtered by the sheets that were checked as well. I am pretty familiar with appscript as well and open to appscript solutions, but would prefer to stay away from it if possible.
You do not need additional column. Use REDUCE() with few other formula-
=REDUCE(HSTACK("Dataset Name","Data 1","Data 2","Data 3","Data 4"),FILTER(A2:A,B2:B=TRUE),
LAMBDA(x,y,VSTACK(x,QUERY(INDIRECT(y&"!A2:E"),"where A is not null"))))

Importing Images from a table on a website (Google Sheets)

I have a IMPORTHTML formula which imports a certain table from a website - but, of course, it doesn't import the images in that table too.
I was wondering how I might be able to do this.
Using vlookup, I have been able to find where the image is and everything, but I have tried using IMAGE() in a number of different places and it will never pull over the data. Really not sure how to do it.
Ideally, I would like to modify the IMPORTHTML formula in A1 to allow it to include images as well, but if I need to put it in D2 like I previously have been, then that's completely ok.
Formulas used in the images:
=IMPORTHTML("https://boards.habbousdf.com/showthread.php?tid=155","table",9)
=VLOOKUP(A2,IMPORTHTML("https://boards.habbousdf.com/showthread.php?tid=155","table",9),3,FALSE)
I was able to achieve this using the formula below
ArrayFormula(image(query(iferror(regexextract(lambda(x,filter(x,scan(,x,lambda(a,c,a+regexmatch(c,"table")))=*{table ID}*))(query(to_text(flatten(importdata("*{URL}*"))),"where Col1<>''",)),"src=.(.*\.png)")),"where Col1<>''",)))

Combining multiple spreadsheet files in to one master overview (read only)

Let me start by saying that I know too little about coding etc to translate some of the solutions given on this platform to solve my issue. So hopefully someone can help me get started..
I am trying to combine a certain section of multiple google spreadsheet files with multiple tabs into one file. The name and number of the various tabs are different (and change over time).
To explain. We have for various person an overview of their projects (each project on its own tab). Each project/tab contains a number of to do's. What I need to achieve is to import al the to do's to a master list so that we have 1 master overview (basically a big to do list that I can sort on date).
Two exmples with dummy information. The relevant information starts on line 79
https://docs.google.com/spreadsheets/d/1FsQd9sKaAG7hKynVIR3sxqx6_yR2_hCMQWAWsOr4tj0/edit?usp=sharing
https://docs.google.com/spreadsheets/d/155J24uQpRC7uGvZEhQdkiSBnYU28iodAn-zR7rUhg1o/edit?usp=sharing
Since this information is dynamic and you are restricted from using app script, you can create a "definitions" or "parameters" sheet where the person must either report the NAMES of their projects and the ROW the tasks starts on and total length. From there you can use importrange function to get their definitions. From the definitions you can use other import range functions to get their tasks list. Concatenating it is gonna be a pretty big issue for you though.
This unfortunately would be much easier for you to accomplish with a different architecture to your docs / sheets. The more a spreadsheet looks like a database (column heads and rows of data that match those headers), the easier they are to work with. The more they look like forms / paper worksheets the more code you would need to parse that format.

Can I make Google Sheets evaluate a string input as if it were a formula?

I am creating a home budget for myself in Google Sheets, working in Chrome on Windows 10. In the end, the budget will be composed of separate sheets for each month, containing tables for each Friday (payday) within that month. All such tables will follow a certain format and will pull arrays of budget data from an auxiliary sheet.
However, trial-and-error (mostly error) is abundant, and one quails at the thought of having to paste corrections across 52 tables. Is there any way to have each table emulate a formula set down in a template? For example, ideally, my template would contain something like:
=INDEX(IF(condition(relativeCell),namedRange1,namedRange2)
and the final product would pull that formula (with relative reference) to each table. If I discover a mistake or need to make a change, I can simply change the template, and all of the live tables would update their formulas.
Can this be done in Google Sheets?
Failing that, I already have a function that returns a cell's formula as string text. Can this be used to get the desired effect?
there is a formula called INDIRECT which does exactly that:
https://support.google.com/docs/answer/3093377?hl=en

Using IMPORTRANGE as an array formula

I have a URL in one cell which is the criterion for the IMPORTRANGE. e.g.:
=IMPORTRANGE(B2,"sheet1!$A$1")
I found a formula to collect it as criterion, but not in array version.
A sample can be found here.
I see you have column B filled with Spreadsheet Ids, and you are trying to execute
=ArrayFormula(IMPORTRANGE(B2:B,"sheet1!$A$1"))
Not every spreadsheet function supports arrays as argument. In particular, importrange does not. You need separate importrange formulas for separate spreadsheets you are importing.
Indeed, importing data from another spreadsheet is not a batch operation; each import has to be authorized by clicking a prompt the first time it's called. Also, it's a very slow operation; you will get a serious performance
hit if trying to import a lot of other spreadsheets.
Generally, if you find yourself doing a lot of importrange, it may be time to rethink the overall data organization.
While you cannot use IMPORTRANGE() in an arrayformula, as detailed in the other answer, you can use it in an array literal. In your case, for the first five cells in your column B that contain spreadsheet URLs:
={
IMPORTRANGE(B2,"sheet1!$A$1");
IMPORTRANGE(B3,"sheet1!$A$1");
IMPORTRANGE(B4,"sheet1!$A$1");
IMPORTRANGE(B5,"sheet1!$A$1");
IMPORTRANGE(B6,"sheet1!$A$1")
}
So you'll have to write IMPORTRANGE() multiple times and you can only use this technique if you know before how many sheets there are to import. But the advantage is that this also works where IMPORTRANGE() returns multiple rows each – in that case, copying the formulas down is no option, as IMPORTRANGE() creates an error in cases where its results would overwrite cell contents further down.

Resources