Array formula across columns and for entire column? - arrays

I'm a google sheets beginner and need some help. I am using a sheet that is populated by a google form, so it's a bit tricky for me.
The google form allows users to select up to three options - red, blue, green. They must select one and can select three, so the output in column A can be "red" or "red, blue" or "red, blue, green" or any combination.
I've figured out how to split the answer combination using the formula =ARRAYFORMULA(trim(SPLIT(A2, ","))) so I get the individual outputs without the commas (that the google form returns) across up to three columns.
But - since it's a google form, I also need to have this formula automatically pasted as new rows are added to the sheet from the form. I can't figure out how to do a "double" array formula (for additional columns for data output and additional rows as data input) or if that's even an option or if I'm missing something here. Any help? thank you!

use in row 1:
={"formula", "header", "row"; ARRAYFORMULA(TRIM(IFERROR(SPLIT(A2:A, ","))))}
or in row 2:
=ARRAYFORMULA(TRIM(IFERROR(SPLIT(A2:A, ","))))
fully dynamic formula for row 1 would be:
=ARRAYFORMULA({"fx", IFERROR(REGEXMATCH(TRANSPOSE(ROW(
INDIRECT("A2:A"&COLUMNS(SPLIT(A2:A, ","))))))); IFERROR(SPLIT(A2:A, ","))})

Related

Google Sheets: Using Transpose on an array in other tabs & identifying the tab by

I would appreciate some help, please.
I have a google sheet with many tabs with data going horizontally.
I would like to create a formula that imports and transposes the data into a vertical list.
However, I want to be able to type in (or drop-down list) to select the tab which the transpose formula to look at. I cannot get anything to work. I have tried this
=TRANSPOSE(A1&!B2:J2)
To add to that if it could use a lookup (vlookup or hlookup) to find the correct row to transpose then that would be great also.
I have set up a test sheet below. Please help. Many Thanks Tim https://docs.google.com/spreadsheets/d/1Menn6Z1mLl8wYOrcdQFnfs7Lp0dbC9UJe1S3AQRcOS0/edit#gid=0
You should not use IMPORTRANGE to work with data that exists anywhere in the same spreadsheet. IMPORTRANGE is for use retrieving data from a separate spreadsheet.
Instead, delete your current Sheet1!A2 formula and replace it with this:
=ArrayFormula(TRANSPOSE(INDIRECT(A1&"!B16:J16")))
I also added a new sheet ("Erik Help") with an advanced formula that accomplishes your lookup using whatever is types in B1. If whatever is typed in B1 exists in Column A of the selected sheet, the results of that row will be retrieved. If no match is found, IFERROR will return "No Match Found."
That formula, in 'Erik Help'!A2:
=ArrayFormula(IFERROR(QUERY(TRANSPOSE(INDIRECT(A1&"!B"&VLOOKUP("*"&B1&"*",{INDIRECT(A1&"!A:A"),ROW(INDIRECT(A1&"!A:A"))},2,FALSE)&":"&VLOOKUP("*"&B1&"*",{INDIRECT(A1&"!A:A"),ROW(INDIRECT(A1&"!A:A"))},2,FALSE))),"Select * WHERE Col1 Is Not Null"),"No Match Found"))

Google Sheets: Sum, Query, other Formulas Treating Values (Formatted as NUMBERS) as Zeroes in Formulas - Unclear why

I have 15 Google Workbooks that import into 1 Workbook tab through an Importrange + Query combo function. The data is then queried and transformed across several other tabs, but the problem definitely begins on this tab.
Although I've manually forced a format change to "Number" in each workbook source AND in Columns CO:CQ (where the problematic data lands), all functions see the data as zero or null. Here is what happens when I set a random cell (CW33) equal to a cell in one of the trouble columns (CO33)
However, when I wrap the cell in an =sum(), the workbook returns "0":
I have no idea how to force the workbook to see the values in these rows as numbers without creating an entirely new column - does anyone have any ideas on how to fix it while preserving the column structure?
Thanks!
try:
=SUM(CO33*1)
for multiple cells it would be:
=ARRAYFORMULA(SUM(CO33:CO34*1))
or:
=SUMPRODUCT(CO33:CO34)
AFAIK, in Sheets, a Number formatted cell displays contents right-aligned and Plain-Text are left-aligned. The highlighted cell looks like a text cell.
Try changing the format of cell or column manually to 'Number' from the 'Format' tab.

Find name in one column, return value from another

I have a spreadsheet with responses from a Google Form. They sign up for one of our trivia games, then I make a spreadsheet for each game. I wrote a FILTER function in the corresponding Google Sheet that gives me a list of all the players' names.
What I need is a function to reference the team name from the Responses sheet and give me the information in my filtered game sheet. I would like a function rather than a Javascript script to run manually. I am certain this can be done but the function methodology is escaping me.
As an example, I have created a spreadsheet in Google Sheets with some data. Can someone help me write a formula to put team names in "The Office" tab? Thanks in advance.
https://docs.google.com/spreadsheets/d/1F2bgvHXqA2wNUa98rfESWTeK22va1RMQUjnk6ma2AeA/edit?usp=sharing
In B2 try this formula
=ArrayFormula(if(len(A2:A), vlookup( match("*"&A2:A&"*", 'Form Responses'!C:C, 0), {row('Form Responses'!A:A), 'Form Responses'!B:B}, 2, 0),))
and see if that helps?
Looks like you need a VLOOKUP which grabs the value of the matching row of whatever criteria you specify. The only issue was that VLOOKUP requires the column of values being returned to be after the "lookup column" which meant moving the team names column to column D.
Here is the formula: =VLOOKUP("*"&A2&"*",'Form Responses'!C$2:D$23,2, FALSE)
I also went ahead and implemented it in your linked spreadsheet.
use in B2:
=ARRAYFORMULA(IF(A2:A="",,IFNA(VLOOKUP("*"&A2:A&"*", 'Form Responses'!C2:D, 2, 0))))

Index Match Array formula not working properly

I am completely stumped with an array formula that will not work. I have researched and tried many different things and continue to get the #N/A error. I am hoping someone here can help me understand.
I have a database of employee skills in a table named "Skills" with three columns. Employee ID, Type and Skill Picture of table
On another tab I am trying to run an Index Match array to filter employees that have certain skills. I would like to be able to use 1 or more criteria. For example employees that have the skill "Infor" and "syspro" The criteria is in cell A2 and C2
I am attempting to use the following formulas to do this and they are not working. And I am pressing ctrl+shift+enter
=INDEX(Skills[Employee ID],MATCH(1,($A$2=Skills[Skill]),0),1)
=INDEX(Skills[Employee ID],MATCH(1,($A$2=Skills[Skill])*($C$2=Skills[Skill]),0),1)
I would still recommend using a filter, but if it must be a formula, this should work for you. Change the A$3:A3 to the cell above where the formula will be posted (so this formula assumes it is going in cell A4 of the second sheet) and copy down:
=IFERROR(INDEX(Skills[Employee ID],MATCH(1,INDEX((COUNTIF(A$3:A3,Skills[Employee ID])=0)*(COUNTIFS(Skills[Employee ID],Skills[Employee ID],Skills[Skill],$A$2)+COUNTIFS(Skills[Employee ID],Skills[Employee ID],Skills[Skill],$C$2)=2),),0)),"")

Generate hyperlink from query

My query is not returning the literal cell value, but rather only the visual portion of it.
I've got a google spreadsheet with FirstSheet having my info and then with the use of a query on SecondSheet showing part of the information.
The first column of FirstSheet has a hyperlink for each row in column A such as:
=hyperlink("http://www.google.com/test","My Test")
SecondSheet has a query that pulls that column amongst others such as:
=query('FirstSheet'!A2:C;"select*",0)
The query result only returns the label of the hyperlink but not the link itself or the hyperlink formula. Meaning I see the same text on both sheets but on SecondSheet it's not a link. I hope this makes sense.
I've thought about different ways to accomplish this including some how creating a string from a query to give me what I want, but I'm not sure. Any help would be greatly appreciated.
I solved it by moving the query to B2, selected column A last, putting it into Col C, hid C. I'm then using C with a formula I created in col A and then just pasted that formula down to row 100.
=If (C2="","",hyperlink("http://www.google.com/"&C2,C2))
I would have liked this to be more elegant, but it's good enough for now.

Resources