arrayformula + filter + join function problem - google-sheets

I have 2 sheets 1st sheet contain email address and apps column A -> email and column B -> apps and the emails in column A are not unique they are repeated with different apps.
In 2nd sheet i am extracting the emails with unique formula and I want to have all the comments related to the email in single cell "," separated.
= =iferror(regexmatch(join(",",filter(Sheet1!$B$2:$B,Sheet1!$A$2:$A=$A2)),$C$1),"")This is how the table will look
But I have to manually drag the formula to the entire column and cannot use Ctrl+Shift+enter because the emails will be automatically be added. Thus want to use array formula. But I am not able to get the right array formula. Can anybody help.

Related

How can I count the number of occurrences previously appearing in the same column with arrayformula()

I am receiving email addresses submitted via a google form so I need to autopopulate the 3rd column - "count".
I need to count the number of PREVIOUS occurrences of an email address in the same column.
An example of the desired output can be seen below.
Please note that the information is received from a Google form and therefore new lines are automatically appended so I need the formula also to be automatically added in the new row.
Assuming the email adresses in column B, starting in row 2 you can try
=ARRAYFORMULA(IF(LEN(B2:B), COUNTIFS(B2:B, B2:B, ROW(B2:B), "<="&ROW(B2:B))-1,))
You should check out the "COUNTIF(<range>, <condition>)" method.
https://support.google.com/docs/answer/3093480?hl=en
If column A is full of email adresses, then the cells in column B could have the method =COUNTIF($A$1:A1, A1)-1, =COUNTIF($A$1:A2, A2)-1, =COUNTIF($A$1:A3, A3)-1 and so on.
Each cell counts all cells in column A whose content matches exactly the one to the left.
See this sheet for a clearer example: https://docs.google.com/spreadsheets/d/1fAHYAFZM1ZUGnEqErdwyXS5MsGZPvM2LEsaU1NqNM34/edit?usp=sharing

is it possible to lookup a cell value and populate a drop down box with the results in a separate cell

I have a google sheet with all current staff information. I have a second sheet for when some piece of data needs changed. Last name, Location, job ect.
on second sheet I am looking to have someone:
Enter the user's first name in column B,
and or Last name in Column C,
I would like a drop down box generated in column D from the given info to contain all usernames found in the sheet with current information for all staff that have the given first and or last names provided.
Once a username has been selected, I can get all the pertinent data from that user with a vlookup from the sheet containing all staff info. For example if someone typed Scott in column B, I would like a drop down generated in column D with all staff that have a first name of Scott. Likewise if the last name was supplied and of course if both first and last was supplied.
Validation need to be done that's it,
1) Go to Staff Changes'!B2 and Data Validation> List from range & choose range from 'Staff Info'!B2:B
2) Select cell'Staff Changes'!D2 and Data Validation> List from range & range will be filter formula i.e 'Staffing Changes'N2:N.
Result
Few tweaks in vlookup:
I am not sure if you need username column twice if you don't need then change your vlookup formula from =vlookup(D2,'Staff Info'!A:K,10,0) to =VLOOKUP(D2,'Staff Info'!$G$1:$K,2,0)
Please provide access to trix in future so that changes & result can be shown in it.
UPDATE:
Use data validation as before & hide filter colum or use seperate sheet for filter formula & use query function in cell A3 =QUERY('Staff Info'!A:J,"select ' ',A,F,' ',' ',G,' ',I,' 'where A='"&A2&"' AND F = '"&B2&"' LABEL ' ''Date',' ''Current Last Name',' ''New Last Name',' ''New Building',' ''New Classification'",1) result wil be something like this
QUERY

Using multiple columns of data to match and return value in Google Sheets

I've tried everything and am finally turning to help from this community to figure out this Google Sheets formula. Here is a sample sheet to illustrate the situation: https://docs.google.com/spreadsheets/d/1mLzsAyqtkASYMQsu8-igaUTURvhHiH-jXJN3qsr0mkU/edit?usp=sharing
Each row is a patient that visited a clinic. There are 5 fields for patients to provide phone numbers (cell, home, etc.). On another tab ("Paid Calls") there are phone numbers in column A from leads that called us. As this will be an ever-growing list of patients and calls, I'd like to use an array formula to search across all five phone numbers provided by each patient, compare them to the phone numbers from Col A in Paid Leads and return the value of the first matching phone number. So, if the cell phone of patient 999999 matches any of the phone numbers in the Paid Leads tab, then I want to return that matching phone number.
Because I'm not sure there's a way to do this, I have an alternate scenario that could work where an array formula will return the first non-blank value from columns E through I of each row. If that's an easier formula to write, then I can figure out a way to arrange the data to make that work using a non-related query.
Thank you for any help you can provide!
There's two formulas you can use:
This one compares the phone number of a specific patient with the number list you have in the PaidCalls sheet.
=join(char(10),FILTER(E2:I2,ARRAYFORMULA(ISNUMBER(MATCH(E2:I2,PaidCalls!A2:A,0)))))
The other one simply iterates through each patient's phone numbers and selects the first one which isn't blank. It's pretty straight forward. It's a series of nested conditions, that all follow the following pattern:
If this cell is not blank, use its value. If it is blank, proceed to the next cell.
=IF(not(isblank(E2)),E2,IF(not(isblank(F2)), F2, IF(not(isblank(G2)), G2, IF(not(isblank(H2)),H2, IF(not(isblank(I2)),I2)))))
PS: Please note that I used the name 'PaidCalls' instead of 'Paid Calls' in my implementation. Everything else works according to the structure of your sheet. I also already copied it into the Google Sheet you shared.
Please let me know if you'd like any further explanation, particularly on the first formula.
formula that will return the phone number from this row that matches any phone number from Column A in the Paid Calls tab.
=JOIN(CHAR(10),unique(QUERY(ArrayFormula(IFERROR(VLOOKUP(
{E5;F5;G5;H5;I5},PaidCalls!A$2:A,1,0),)),
"select Col1 where Col1 is not null", 0)))
formula that will return the first non-blank value from columns E through I of each row below
=INDEX(QUERY(transpose(E5:I5),"select Col1 where Col1 is not null",0),1,1)

How can I compare strings and sort them accordingly using an auto-generated Google Forms response sheet?

So my goal is to have every name on the roster in column A and then have the names of those who respond (not everyone will respond) in column B. I want column A to sort alphabetically. I want column B (and the corresponding columns with answers (C-E)) to only fall in line if the name matches. Otherwise columns B through E would be left blank. Any help would be appreciated. Thanks!
Make a new sheet with the roster names. After typing them, use the Google Sheets sorting tools to sort them.
Use the match function to identify the corresponding row in the first sheet for each of the roster names.
Once you have got the row, you can get the data for any cells in that row. See Get content of a cell given the row and column numbers .

Autofill a column in Google Sheets as new rows are submitted through Google Forms

I have a google form that has fields taking up 7 columns in the response sheet. I have reserved the 8th column to compute few fields (basically a formula) and generate a unique ID for that response. I know that when new responses are added, I can drag the box of the 8th column field all the way down to the given number of rows to auto-fill the column. But this type of auto-fill requires a manual effort. What I want is an automated system to keep filling in the column with my formula.
I have tried pulling the column down beyond the current number of rows in a hope for it to auto calculate when the new row is added but a new response simply overwrites the entire row instead of filling in just the seven columns which deletes the 8th column in that row.
The spreadsheet is
https://docs.google.com/spreadsheets/d/1HM2dDRtkF_KlQ8SKoeW2YmjP2dttYAk1_4iCYBVEN8o/edit?usp=sharing
The responses fill up to column H (Member #3) and my desired column is column I (Registration ID) which is aided by column J, K and L.
You can try using
=ARRAYFORMULA(IF(ROW(M:M)=1,"Registration_ID",IF(C:C="UM-DAE CBS, Mumbai", "cbs"&"_"&J:J, IF(C:C="ICT, Mumbai", "ict"&"_"&K:K, IF(C:C="IISER, Pune", "iiser"&"_"&L:L,"waiting for a response...")))))
Just some explanation:
//This one is just to label the first row as Registration_ID so you can replace M:M with any column you want.
IF(ROW(M:M)=1,"Registration_ID"
My first time answering in Stack Exchange so I'm not familiar with the formatting.
Also a heads up, if you wanted to use ArrayFormula() with an If(AND()) or If(Or()) function, just know that the ArrayFormula() requires you to use arithmetic functions like "*" or "+" instead.
So IF(AND(A,B)) will be IF(A*B).
Use the "CopyDown" add-on for Google!
On your Google Sheet that your Form posts to, click Add-Ons > Get Add-Ons > type "copyDown".
This add-on quickly & easily allows the sheet to automatically copy the formula from one of your top rows (adjustable) to the rest of the form's submissions.
Love it!

Resources