I need to "textJoin" multiple lookups in Google Sheets - google-sheets

I hope you can help me! I work for a company that books Food Trucks for Apartment buildings and each month we send out a form to get which dates and buildings each truck wants to do. What I am looking to do is take One date for one building and show all the trucks that responded in one cell.
I've been lost all day researching a solution for this but I have tried an Index/Match Combo and couldn't get it to work at all. My issue is that we do this every month and I would not like to hard code the formula into it because I just redid the whole spreadsheet to make it more dynamic. This is the last part that I have not been able to figure out.
In the previous version, I used a simple textjoin formula to bring all the trucks into the one cell and had columns that the trucks were hard-coded into. =TEXTJOIN(", ",True,'Named Ranges'!$F$3:$F$63) was the formula I used and each day and building had its own column where the data would go. However, the new version of the data is dynamic and the textjoin formula needs to look for the column with the specific date and building.
Here is the link to the spreadsheet any help you could provide would be awesome!
https://docs.google.com/spreadsheets/d/1RJeTMI1EI8iXr2MV2MmRUU1DZN1irfVgxMU8jlHHKaI/edit?usp=sharing

paste in B11 and drag to the right:
=ARRAYFORMULA(IFERROR(TEXTJOIN(", ", 1, IF(
INDIRECT("Responses!"&ADDRESS(4, MATCH(B8, Responses!$3:$3, 0), 4)&":"&
SUBSTITUTE(ADDRESS(4, MATCH(B8, Responses!$3:$3, 0), 4), 4, ))<>"",
Responses!$B$4:$B, )), "no cars"))

Related

Repeat range dynamically

Hoping for a nudge in the right direction.
Summary:
I work a Nursery and have been teaching myself Google Spreadsheets to help with organization. I've come along way but find myself stuck on this function I'm trying to do, and what would be useful throughout my project.
There are multi areas that have different feeding/watering schedules. What I'm trying to achieve is to be able to change the schedule and have it repeat down column B for all the dates in column A.
Here is a example sheet that I set up. This is a small piece of a much bigger project that I have been working on for the past 6 months.
https://docs.google.com/spreadsheets/d/1Mj5X-Xhw6_VCur2hdqeRk1HWvqHSWLg4oCndLubsyAU/edit?usp=sharing
Note: Sometimes, for example, in Area 1, the number of cells to repeat will be 5, and other time it will be 4, depending on the time of year and weather. No matter the number of cells to repeat, the result I am going for is that it is repeated down column B if there is a date in column A
I hope I've explained this correctly.
Thanks in advance for any help I receive.
You can calculate the remainder after dividing the row in A9:A by the number of items in the list in B2:B8 (5 in your example) using Row and Mod. Then use Vlookup to find this value in the corresponding row in B2:B8
=ArrayFormula(if(A9:A="",,vlookup(mod(row(A9:A)-row(A9),counta(B2:B8)),{row(B2:B8)-row(B2),B2:B8},2)))
then copy the formula across to the other columns.
try:
=INDEX(IF(A9:A="",,LAMBDA(x, y, REDUCE(x, SEQUENCE(y), LAMBDA(a, b, IF(b, {a; x}))))
(B2:INDEX(B:B, MAX((B1:B8<>"")*ROW(B1:B8))), COUNTA(A9:A)/COUNTA(B2:B8))))

Google Sheets Array Formula Match on Multiple Conditions, 1 being date that is less than or equal to

I am hoping someone can help me out.
I have 2 different datasets and I am hoping to replicate something like the maxifs function using an arrayformula so that I only need 1 formula and do not need to drag it down.
What I would like to do is return a value that matches a name, and the date is less than or equal to a date in the column. Basically the most recent value that matches those criteria.
I have added a picture below
DEMO FIXED
The maxifs formula I am trying to replicate in this case is: =maxifs(I:I, A:A, G:G, H:H, "<=" & B:B)
Sample Sheet: https://docs.google.com/spreadsheets/d/1mMMT1JbBMTAM0togUFQtctpY5FKzgVaP2_YKnALoHAE/edit?usp=sharing
Thank you in advance.
UPDATE:
I have this formula
=arrayformula(if(len(A2:A), vlookup(A2:A&B2:B, {H2:H&I2:I, J2:J}, 2, false),))
Which almost does what I want, however if there is no date matching i need the value from the next most recent date. Instead this returns an error.
Your new goal has nothing to do with your post. Your image values don't match your sheet, and you don't want a max or equivalent to MAXIFS at all now. So the entire post will be confusing to other contributors and future site visitors. Consider spending adequate time to rework your post question, image and spreadsheet to accurately reflect your new goal in a unified way.
That said, I've added a new sheet ("Erik Help") with a formula highlighted in green which accomplished your new goal as I understand it:
=ArrayFormula(IF(A2:A="",,VLOOKUP(A2:A&"~"&B2:B,SORT({G2:G&"~"&H2:H,I2:I},1,1),2,TRUE)))
ADDENDUM (based on additional comment from OP):
I've modified the formula as follows:
=ArrayFormula(IF(A2:A="",,IFERROR(IF(REGEXEXTRACT(VLOOKUP(A2:A&"~"&B2:B,SORT(G2:G&"~"&H2:H),1,TRUE),"(.+)~")<>A2:A,"no match",VLOOKUP(A2:A&"~"&B2:B,SORT({G2:G&"~"&H2:H,I2:I},1,1),2,TRUE)))))

Google Sheets: How to Filter Vertically Merged Cells

I've come looking for help regarding this issue. I'm a teacher, and am trying to help my students get all their documents together for university applications. Google Sheets tell me that I'm not able to filter cells containing vertical merges, but I want to filter by the earliest application deadline (column G) so I know which student I have to chase up first, second, third, etc., without losing the rest of the data in the row.
Does anyone know a good way of doing this? I've created a sample of my spreadsheet: here.
Thanks in advance.
Try Insert > New sheet and this formula in cell A1 of the new sheet:
=query('2021'!A1:Z, "where G is not null order by G", 1)
The sorted list is for reference only. You will need to continue to do your editing in the 2021 sheet.
I would split the data between a couple of sheets.
In the first sheet you'd have important data that can be seen at a glance and filtered easily, like student names, universities and deadlines.
In the second sheet (which you can link by student name or id) you can put extra info like necessary documents, urls etc - something like this.
Alternatively keep all the info in one sheet but don't use split columns or rows - it isn't conducive for sorting, filtering and viewing data (and what's the point of data if you can't analyse it?)

How to combine data from multiple Google Sheets and organize/filter it?

Here's my sample spreadsheet: https://docs.google.com/spreadsheets/d/1c-nXosPZvnEplFME6GHXlxuQUrVe4ImF5c5Go9_75DU/edit#gid=34769607
I use an API to import data from our time tracking app into Google Sheets. The "Project Details" sheet has most of the info about the projects, except for the hours spent on each project. So I have a "Project Hours" sheet that has the hours spent.
I want to combine these two things into one list in a separate "Main" sheet, as well as leave out columns that I don't care about. I really only care about the project name, the client name, the start date, end date, and total hours.
There must be a simple formula to use that gives me a clean list of all the projects and only shows me the data I care about, like QUERY or ARRAYFORMULA, but I'm not very familiar with those. Any help would be appreciated!
Craig. Yes, a QUERY with a VLOOKUP can accomplish this. I added a new tab (clearly marked as mine) to your example sheet. Being thorough, I wanted to include the column header in the last column as well, which makes the formula a bit longer than it would otherwise be in that it uses the IFERROR wrap on the VLOOKUP to assign the header for Row 1 (or otherwise leaves the last column blank if no match is found for a project name).
Here's the formula I used (though other approaches could certainly have been used as well):
=ArrayFormula({QUERY('Project Details'!A:Y,"Select B, Y, P, Q Where A Is Not Null"),IFERROR(VLOOKUP(QUERY('Project Details'!A:A,"Select * Where A Is Not Null"),'Project Hours'!A:E,5,FALSE),IF(ROW('Project Details'!A:A)=1,'Project Hours'!E$1,""))})

COUNTIF with IMPORTRANGE with date range and unique ID criteria

I haven't been able to find a solution to get this formula to work after multiple days of searching. The google spreadsheet we use is large and used by many people so I would like to keep this in a separate google sheet using IMPORTRANGE.
Data Needed:
Count of assignments a specific user completed within 7 days and after 7 days based on a start and end date.
Where I'm running into issues:
I simplified the equation by using a small data set in the same sheet to see the main issue. When giving a range for the user # the formula doesn't work anymore. When only comparing it to one user # at a time it does.
For example:
This doesn't work:
=COUNTIFS(C2:C-B2:B,"<7",A2:A,E2)
This one does but needs to have the range for the table to work:
=COUNTIFS(C2:C-B2:B,"<7",A2,E2)
I might be going about this all wrong. Any help I could get is much appreciated.
E2: =UNIQUE(FILTER(A2:A, A2:A<>""))
F2 and drag down: =COUNTIF(ARRAYFORMULA(DAYS(FILTER(C$2:C,$A$2:$A=$E2),FILTER(B$2:B,$A$2:$A=$E2))),"<=7")
G2 and drag down: =COUNTIF(ARRAYFORMULA(DAYS(FILTER(C$2:C,$A$2:$A=$E2),FILTER(B$2:B,$A$2:$A=$E2))),">7")

Resources