Populate formulas upon submission of a form - google-sheets

I need some help to automate a sheet that receives data from g-forms. I am trying to use the index-match function but learned that it does not work well with array-formula.
Basically what I want to do is to look up the data related to the "SF NAme" inputted to the form and append to the sheet where the responses are inputted.
Here is the sheet I am trying to work with.
https://docs.google.com/spreadsheets/d/1MDKJqaK20zl2xRR0_yBk8TTkKrCgEyQzz2myGwuK634/edit?usp=sharing
or would it be better to use scripts... though I am not that familiar with the google appscripts.

Clear the range AG2:AJ and enter in AG2
=Arrayformula(if(len(E2:E), vlookup(E2:E, 'Lookup Data'!A2:F, {6, 5, 4, 2}, 0),))
Hope that helps?

Related

How to make google form responses submit to bottom of spreadsheet and not ignore manually entered data in the spreadsheet

I have a spreadsheet with responses from a form, but occasionally we manually enter responses into the spreadsheet that do not come in through the google form. I would like these to remain in order with the form responses, but when a google form is submitted it inserts the next form response after the last form response and shifts the manually entered data on the spreadsheet down.
Is there a way I can get the manually entered data to be recognized when the form submits and always append the latest form response to the bottom of the spreadsheet?
I followed this answer here but it doesnt work for me, it still ignores manual entries. Any help is appreciated.
You cannot have automated data and manually entered data in the same range.
For instance, if you use an array formula on a sheet in in B:B, the array formula "owns" B:B. If you then enter manual data anywhere in B:B, you will "break" the array, all of your formula data will disappear and the original formula cell will show an error. Think of that error as Google Sheets' way of saying, "Looks like you decided that you want to use this range for manual data now instead of formula-produced data, so it appears your formula is now not what you want."
The same concept is true for form integration. A form does not "read" cell from your Google Sheet. It just outputs data to it. It's a one-way conversation, so to speak. As such, the form doesn't know what else you are doing on the form-data intake sheet. It only knows how to find the information that marks where it left off with the last submission; and then its instructions are to enter a new line below that point for the next new submission.
In other words, a form "owns" the sheet you integrate it with. And the form will do what it is programmed to do, regardless of whether you try to also "own" that sheet by typing into in manually.
The simple solution: always use your form to enter data.
If you say to yourself, "But using the form is more work than manual entry," it's time to rethink your form and your user experience, since forms are meant to make data entry easier than manual entry into the spreadsheet, not harder.
This sounds plain, but i keyed in the timestamps columns of manually entered data to any earlier date and sorted the data by timestamp. the new data from the form would populate the bottom rows after
however new responses doesn't take your formats n formulas..maybe u have to export it for calculations etc
hope this helps

Google Sheet Array Formula to automatically transpose responses from a Google Form into a single cell

I want to tweak an Array Formula that I'm trying to use to transpose a set of responses from a Google Form into a single 'list' in a cell in the linked Google Sheet.
Here is a simplified mock-up of the Google Sheet: https://docs.google.com/spreadsheets/d/1BKgjGK2RbXC5FkCgBOU53dLEb3fDeQADujenrqRgnT0/edit?usp=sharing
As you can see, I have a working Array Formula 'hidden' in the header for Column A, which takes the content from columns B:K in each row and transposes them with line breaks to make a nice neat list in the first cell at the start of each row (A2, A3, A4, etc.) Here is the Array Formula for ease of reference:
=ARRAYFORMULA({"Points to Develop";
transpose(query(transpose ($B$2:$B&CHAR(10)&$C$2:$C&CHAR(10)&$D$2:$D&CHAR(10)&$E$2:$E&CHAR(10)&$F$2:$F&CHAR(10)&$G$2:$G&CHAR(10)&$H$2:$H&CHAR(10)&$I$2:$I&CHAR(10)&$J$2:$J&CHAR(10)&$K$2:$K)
))})
The problem I'm having is that the formula stops working as soon as a new Google Form is submitted, as the new row of responses arrives at the top and 'pushes the formula down'/throws everything out of alignment, when all I want is for it to stay in place and run automatically every time a Form is submitted. As you can probably gauge by my limited technical terminology, I'm very much a novice at this!
How can I fix this formula, or is there a simpler or better alternative that will achieve the same results?
As often happens in life, the nature of the problem turned out to be the source of the solution. Here’s a condensed version of my thoughts as I slowly found my way to an answer (you can almost hear the hamster wheels turning in my head!):
The problem with formulas in a Google Sheet linked to a Google Form is that each new entry/submission from the form always arrives in Row 2 …
In fact, the only thing that stays ‘in place’ in the Google Sheet is the Header Row/Row 1 …
So, rather than using a formula that refers to a ‘Row 2’ that will become ‘Row 3/4/5/etc.’ as new Google Forms are submitted, I should use a formula that always refers to Row 1, that is, by using OFFSET
The obvious (if inelegant) formula that resulted from this is [I've also placed this in the final column in the Google Sheet that I linked to in my original question]:
= ARRAYFORMULA({"Points to Develop [Working OFFSET Formula]"; transpose(query(transpose(OFFSET(A1:A,1,1)&CHAR(10)&OFFSET(A1:A,1,2)&CHAR(10)&OFFSET(A1:A,1,3)&CHAR(10)&OFFSET(A1:A,1,4)&CHAR(10)&OFFSET(A1:A,1,5)&CHAR(10)&OFFSET(A1:A,1,6)&CHAR(10)&OFFSET(A1:A,1,7)&CHAR(10)&OFFSET(A1:A,1,8)&CHAR(10)&OFFSET(A1:A,1,9)&CHAR(10)&OFFSET(A1:A,1,10)))) })
I am sure that there are neater ways of getting to the same result, but this is one that works for me … and is within my levels of comprehension, so I can fine-tune and fix it as needed.

LOOKUP Function won't output correct value

I'm trying to create an Activity tracker for a game. However, I'm trying to use the LOOKUP function to track activity throughout 3 different sheets. However, the LOOKUP function does not seem to be outputting the correct value. LINK: https://docs.google.com/spreadsheets/d/1tdq6oeEFjgxJg6FXvSH2ZmkgRlHaFiD5aycjvezfNvc/edit?usp=sharing
If you look at Activity sheet, E2:E52, you should understand that it's outputting the wrong value(At least based on what I'm reading on the google docs).
I've tried converting this over to one sheet to see if that was the problem, however, it didn't work there either, I tried being more inclusive of the exact letter and number combination and that didn't help either.
I expect it to output the Attacks column for the username based on the Activity1 sheet.
Any help would be greatly appreciated.
PS: I tagged excel as it does the same exact thing on excel, however it gives slightly different values. I'm very confused.
use VLOOKUP instead:
=ARRAYFORMULA(IFERROR(VLOOKUP(D2:D,
{Activity1!C:D; Activity2!C:D; Activity3!C:D}, 2, 0)))

Formula (Array, etc.) for automatic Google Sheets Indexing using inputs from Google Forms

I'm hoping that someone can help me tweak (or even substitute) a formula that I'm using in Google Sheets to automatically populate columns with information based on inputs from a Google form.
Simply put, I am using the Index function to match the name that is selected from a drop-down menu in the Google Form and arrives in Column E of the Google Sheet receiving the responses with an identical list of names in Column A of 'Sheet 2'. The index formula takes information from 'Sheet 2' relating to that name (e.g. Registration Number, Email Address) and places it in the 'Formresponses 1'sheet alongside the inputs from the Google form (including, of course, the name that appears in Column E'.
I have been using (variations on) the following formula without any issues, but I have to manually drag it down the relevant column in 'Formresponses 1' each time a new entry/name arrives from the Google Form: =index(Sheet2!$B$2:$B,match(E2, Sheet2!$A$2:$A,0),1)
I have successfully used Array Formulas to automatically carry out other functions on data arriving from a Google Form (i.e. adding up individual numbers to arrive at an overall total), but in this case I cannot figure out how to create a formula that will automatically take each new name that arrives in column E and insert it into the relevant indexing formula at that end of that new row.
Any suggestions - or solutions! - would be greatly welcome!
Thanks,
A.
Cheers I'-'I,
I've used I'-'I's response to my original question here as a starting point and, with a bit of research, I've come up with the following working formula:
= ArrayFormula(vlookup(E2:E, Sheet2!A:E, {1,2,3,5},FALSE))
[The curly brackets simply indicate the columns in Sheet 2 from which I want to pull pieces of data relating to each name that is matched up in the 'front end' sheet receiving the responses from the Google Form.] As with my previous problems with array formulas, I found the following website really useful, so full credit has to go to it: benlcollins.com

Google Spreadsheet Formula

I have used a Google Form to create a multiple choice survey. I need to assign one point to each answer that says "no issues" on the spreadsheet that it fills. For instance, if is says "no issues" in A2, A3, and A7, I need it to add up to 3 in the final cell.
How would I write this, and how would I enter it? I have been looking for two days, and cannot find a solution that I can make work. I have been using Google spreadsheets for a while, but I am new to writing anything for them, so please be gentle.
Maybe what you want is:
=countif(A1:A,"no issues")

Resources