Google Sheets, Forms and Query for updating data to multiple sheets? - google-sheets

I am using a Google Form to collect data into a Google Sheet, I made another sheet and want to fetch data to this new sheet when a new form is submitted.
Used =QUERY('Form responses 1'!A228) to get data from the Form responses 1 sheet and it works good. I dragged the cell and the formula get copied correctly to the lower cells like =QUERY('Form responses 1'!A229) =QUERY('Form responses 1'!A230) and so on.
But now when a form is submitted nothing gets updated in the new sheet, I noticed the cell address has somehow skipped a place and when I do a new drag and drop from top column everything works fine. The cell references are copied correctly so that it should work on new form submit, but as soon a form is submitted the next row formula gets omitted, like the row got deleted in new sheet. i.e. After form submit if the current row formula is =QUERY('Form responses 1'!A228) and net row formula WAS =QUERY('Form responses 1'!A229) it gets changed to =QUERY('Form responses 1'!A330) and no row gets updated in the new sheet.

Try just ={'Form responses 1'!A228:A} . This is a formula that will bring in every cell from A228 to the bottom of the sheet. This way you do not have to keep dragging down formulas.

Related

Importrange Query Google Sheet Include SheetName

I'm using Query and Importrange to pull details from other tabs on a Google Sheet.
The other tabs are linked to individual Google Forms.
I'd like to include the name of the sheet the data came from in the query but can't figure out a way to do this.
Any ideas?
I did try having a column on each sheet that contained the name of the sheet i.e. a column on sheet1 where all the entries are sheet1. Then with the query have that column included in the selection.
However, when new Google Forms submissions are made, a new row is added (I think) and the column that contains the sheet name now has a empty entry where the new row was added.
I'm not able to share the sheet as it contains student info from school and it's not-shareable outside my organisation.
Most likely you are using a drag-down style formula within the form responses tab which would cause this rows not aligning with your already included formula as & when new responses pop in!
You could just use an arrayformula accommodated in the first row_cell itself as shown in the screenshot and it should fix this thing. Please do test it out and let us know if its solved or aint.
=INDEX(IF(LEN(A:A),"SHEET 1",))

How to do Indirect on a range reference of cells with Google Sheet [duplicate]

In a google sheet linked with a google form, I am putting
=ARRAYFORMULA(Responses!$A$2:R500)
in a blank sheet(namely dataList) to copy raw data from the response sheet so it is more readable and manageable.
After submitting some test data, I need to clear them and publish the form for production use. If I simply select the rows and hit "delete" on my keyboard, when new submission comes in, it will not appear on the first row(or row 2), instead it remembers how many rows there were and put the new data on the next row, thus leaving the first rows blank on both of the sheets, which is unacceptable. So I select the rows with test data in the sheet Response and delete the rows:
Now when new submission comes in, it does appear on row 2 in Sheet Response; however, when I go to my "dataList" sheet, it is like this
The A1 notation which is supposed to be absolute has been altered, hence my dataList sheet doesn't get the new submission data from sheet Response.
How to deal with this unwanted behavior?
you can freeze it like:
=INDIRECT("Responses!A2:R500")
instead of your:
=ARRAYFORMULA(Responses!$A$2:R500)
If you want to avoid string ranges or INDIRECT, you could use INDEX:
=INDEX(Responses!A:A,2):INDEX(Responses!R:R,500)
This always takes the second row from A:A and 500th row of R:R regardless of the deleted rows.
Advantage:
This can be drag filled. It can change based only on certain conditions.

Getting google sheets to stop changing formulas when pulling in responses

I have a sheet that is attached to a form on my website. It's using gravity forms for wordpress. Not sure what changed, but now every time a new submission comes in from the form it makes the formulas change on other sheets. I've done the $ signs in the formulas but it's still changing. The formulas are based off of the response sheet capturing all the answers.
How can I lock the formulas so they don't change every time a new response comes in? I want it always pulling from A2, even when new responses come in. I've seen the "Indirect" formula suggestion but my formulas are already complex. Here's one:
=ArrayFormula(vlookup(transpose(split(query(rept(row(Sheet1!$A$2:A)&" ",Sheet1!$B$2:B),,9^9)," ")),ArrayFormula({row(Sheet1!$A$2:A),Sheet1!$A$2:R}),{2,19},0))
This formula works perfectly, and once I change it all back to A2 after the first response comes in it works fine... but I make a new sheet with every form and I also reset the sheets when I turn forms on and off. I would like to not have to change it every time a first response comes in for every sheet. Any suggestions?
use in row 1:
={"header"; INDEX(IFNA(VLOOKUP(TRANSPOSE(SPLIT(
QUERY(REPT(ROW(Sheet1!A2:A)&"", Sheet1!B2:B),,9^9), " ")),
{ROW(Sheet1!A2:A), Sheet1!A2:R}, {2,19}, ))}
Form responses are always inserted in newly created rows that cannot be referenced directly in advance.
The usual recipe to work around this is to dynamically copy form responses to another sheet where the values can be referenced normally. To do this, choose Insert > New sheet and place this formula in cell A1 of the new sheet:
={ 'Form Responses 1'!A1:F }
...where F corresponds with the last form responses column that you want to copy.
Then modify your formulas to reference the new sheet instead of the form responses sheet.

Google Forms changes cell reference on different sheet in Google Sheets

I'm building a spreadsheet to track my macronutrients and calories. I made a google form for inputting information and it populates a "responses" sheet on google sheets. I made a different sheet within the same spreadsheet to perform all the calculation and generate graphs.
But every time I enter a new response into the form, it creates a new row and changes all the cell references in the calculations sheet. For example, I reference cell A2 from the responses
='Form Responses'!A2
and when I actually fill out the form and it populates, A2 in the responses sheet is filled in but the reference in my calculations sheet has been changed to A3.
='Form Responses'!A3
I tried using $ but it did the same thing, automatically changes the cell that I referenced.
Any way to have my calcuations sheet reference the newly created rows automatically?
In a new tab use for example, = {'Form Responses'! A: Z} and use this data to do your calculations and you will have no problems!
Solution
To avoid the row value to change reference when adding a new response, you will need to add the $ next to the number instead of next to the column value (A):
='Form Responses'!A$2
Moreover, an easy way to reference your whole column is to reference a range instead such as:
='Form Responses'!A:A
And then just drag it through your column. If you want it to be more specific (select the range you want):
='Form Responses'!A2:A999
I hope this has helped you. Let me know if you need anything else or if you did not understood something. :)

Google Sheets Copy Down Issue

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)

Resources