Unique list of names, not located in two other lists - google-sheets

I have a google spreadsheet that is being used to develop student schedules. Students are separated into one of two "houses" of teachers on the grade level roster sheet, then each house is scheduled on another sheet in the workbook.
I need to generate a list of students who are marked for "beta" house on the grade level roster (students from all houses), but whose names are not yet listed on the house scheduling sheet.
I have tried
=Unique(Filter(Roster!A:A&A3:A30,Roster!B:B="Beta"))
as well as
=Filter(Roster!A:A,Roster!B:B="Beta",<>A3:A30)
I made some loose attempts with the Query function, but I really have no idea what I am doing with that function yet.
The reason for the inconsistent range sizes is that students with special needs are scheduled first, and then other students (Speech/504/ELL) are scheduled as another layer of the process.
The Grade level roster sheet:
The House scheduling sheet:

=Filter(Roster!A:A,Roster!B:B="Beta",ISNA(MATCH(Roster!A:A,A3:A30,0)))

Related

How to do a VLOOKUP in another Google sheet based on a filtered value?

Basically I have a list of cars that I wish to hypothetically sell and captured the data in the Cars tab in this google sheet.
What I am trying to do is capture how many cars are for sale based on the car type and also consumer interest based on the car type. For example, how many "Y" the sports car has and store this total in a new tab called Consumer stats in this google sheet.
I dont know how to do a VLOOKUP so it extracts all the Y for consumer interest based on sports car for example
Any help will really mean a lot!
Thanks
Have you considered a pivot table? This seems like the perfect use case.
In your example sheet, I added 3 versions.
Your original ask, count of consumer interest by car type
Count of consumer interest by car type and model
Type and Model that have both interest and are for sale.
There are multiple tutorials online for how to set up pivot tables.
The pivot table can be more powerful if you used 0 and 1 for N and Y in your interest and for sale. Sheet's pivot tables don't do COUNTIF natively, and adding custom formulas seems like a lot of extra work.

Is there a way of creating a data/info sorting system across sheets in Google Sheets?

So I am working on a Google Sheets project for a small business that I am going to be starting up. So I have Google sheet with 4 different sheets in it. Let me explain what each sheet is for:
1st sheet named "All Customers": This sheet will have a bunch of information about all the customers who are using our services (Name, Subject, Price, Location, Instructor).
The other 3 sheets are for the 3 instructors who would handle all the customers. The 3 instructors are Sam, Lucy, and Jason, and their Sheets are named Sam's Customers, Lucy's Customers, and Jason's Customers respectively.
I want a sorting system where I can put in the info of the customer in the "All customers" sheet and based on the instructor I assign to them, that customer's info gets sorted and appended into the assigned instructor's Sheet. SO here's an example:
Jordan who wants to learn math needs to pay $200 for tutoring by us. He is located in NY so I assign him to our instructor Lucy who resides in NY and can tutor him.
In this case, this is what the "All Customer" sheet would contain:
A B C D E
1 Name Subject Price Location Instructor
2 Jordan Math $200 NY Lucy
Now Based on the fact that Lucy was assigned as the instructor for Jordan, I want his select information to be added to the "Lucy's Customers" Sheet Like so:
A B C
1 Name Price Location
2Jordan $200 NY
That's what I'm trying to achieve. If Jordan was assigned Sam, the select information of Jordan would be added to the "Sam's Customer" sheet.
So I'd been at this for a while and based on my research I wasn't able to get anywhere. I was messing around with the following Formula: =IF(INDIRECT("All Customers!C1:C")="Lucy",INDIRECT("All Customers!A2:A")," ")
But I know this won't achieve what I'm doing.
Here is a link to the dummy spreadsheet for this project so anyone can mess around with it:
https://docs.google.com/spreadsheets/d/1TGS9thgt77DSLbOUC5V2tRyjrDqE9He5ET17bM7HhZU/edit?usp=sharing
The Query method works but it only mirrors the information. I have pre-made cells in the instructors' sheets where there are cells that record if the customers under that specific instructor has paid or not monthly. The query is basically mirroring the information instead of copy/pasting. So when I get rid of a customer or switch the instructor in the main record, it will disappear from under the respective instructor's sheet. If that's the case then the corresponding cells that record the monthly payments in the instructor's sheet will be messed up.
Any help would be appreciated. Thank You in advance!
I have introduced the queries in the sheet. Please have a look. The data can be retrieved using QUERY function of Google Sheets. example is given below
=QUERY('All Customers'!A:E,"SELECT A,C,D WHERE E CONTAINS 'Sam'",0).
Now, whenever you make new rows in "All Customers" sheet, data would automatically be updated in instructor sheet.
Hope it is clear.

How to copy information between multiple spreadsheets only if common data (name) in one column?

I'm using multiple Google Sheets to set up a logging system for the transfer of students between classrooms during a study period. A master spreadsheet (I call it Spreadsheet A) contains a record of all the students in the building and the teacher to whom they are assigned, and each teacher has their own separate spreadsheet (Spreadsheets B1, B2, etc.) tracking only the students assigned to them. There are more than 100, which is why I opted for separate spreadsheets rather than giving each teacher a tabbed page in Spreadsheet A.
Teachers can request that a specific student be sent to them for help by entering their name next to the student's name on the master list (Spreadsheet A). When this happens, the student's name is added to a list on the spreadsheet of the teacher making the request (so that's Spreadsheet B1). Separately, the student's regular homeroom teacher sees the student's name highlighted on their page (Spreadsheet B2), and sees which teacher made the request. Spreadsheet A feeds all the information to the various Spreadsheet Bs
This is all done and built. However, we want to include a time-tracking function, to make sure that students are moving in a timely fashion and not disappearing. Currently, the teacher receiving the student enters the time they showed up on Spreadsheet A, but this is cumbersome. The teachers want a way to enter arrival times on their own pages, and have it visible to the sending teacher & the administration.
So, I want the main Spreadsheet A to pull data from teachers' Spreadsheet Bs, look for students who have arrival times listed, and then copy those arrival times into a data column next to the students' names on the master list on Spreadsheet A. That will, in turn, propagate out to their homeroom teacher and administrator, so they can see who's coming and going, and how long it's taking them.
Oh, and there are nearly 2,000 students, so there's no way to put in a search string name by name. It has to be a blanket formula that says:
If there is data in column K (an arrival time) on Spreadsheet B1 (and all other B-series spreadsheets),
Then use the data in column H (the student's name),
Find a match on the master list on Spreadsheet A,
And copy that data from Spreadsheet B1 into column F (Arrival time test) on Spreadsheet A, next to the appropriate student, but
Do nothing if there is no data in column K.
Is this even possible?
Test demonstration page:
https://docs.google.com/spreadsheets/d/1F2HYmGv8Vfw9TDeAI2eNmv73jCD-lWcfhKZvWM8-r58/edit#gid=0
The pages for each teacher can be opened from the links in the second page tab.
So far, I've tried to compile all of the data from the existing teacher spreadsheets (B1, B2, etc.) into one list as a page on Spreadsheet A. I thought this would then make it easier to match the names and times, but it always throws an error message, no matter what formula variation I try.
=QUERY({Importrange("1y4GjGnUK9usYCNnSClYl2piFgMlbn07wWClrgZnl6Ms","’Teacher page’!H6:K");Importrange("1dNNZR0GvskBU2WG2N348EGFDbHN2aK9kWmxhoQNmn2M","’Teacher page’!H6:K")},"Select Col1, Col2, Col3, Col4 where Col1 is not null ")
This produces: "Unable to parse query string for Function QUERY parameter 2: NO_COLUMN: Col2"
=QUERY({IMPORTRANGE("1y4GjGnUK9usYCNnSClYl2piFgMlbn07wWClrgZnl6Ms","Teacher page!H6:K");IMPORTRANGE("1dNNZR0GvskBU2WG2N348EGFDbHN2aK9kWmxhoQNmn2M","Teacher page!H6:K");IMPORTRANGE("1buhv3AAi6apWIg_-uZv_BzDvyOEvpkxTmO5is-Yhxi4","Teacher page!H6:K");IMPORTRANGE("1b-kEed3zFcZIg3eldcT0x0JXgiwfWNUou_N0ntPsVEg","Teacher page!H6:K")})
This produces a result, but only from the first Spreadsheet B (B1) queried. It doesn't include the results from the other three sheets in the test version. I still have no idea how I'd merge the data from that data collection to the original master list.

Auto-generate class roster from enrollment sheet

Scenario: I'm doing some pro-bono work for a school that has a summer camp enrollment spreadsheet, similar to the table labelled "Example Source":
In order to maintain accurate attendance, the school wants a per-class roster that each teacher can use to determine who's expected to be in attendance on a given day. This can be error-prone because, unlike in my example, the real source has dozens of classes.
In past years, they've manually generated the roster for each class by creating separate docs for each class and hand-typing the student names based on the enrollment sheet. My goal is to automate this process — in Google Sheets or Excel, but pref. G Sheets — in order to save the staff time and typos.
The x/X/o entries shown in the sample data is meant to account for the high likelihood of inconsistent data entry…ideally, any non-blank entry on the left should result in the student's name appearing on the right.
Question
Given the sample data, how can I automatically populate columns G:I, accounting human data entry inconsistencies as represented by the x/X/o in columns B:D?
you could either do simple mirror mapping like:
=ARRAYFORMULA(IF(B4:D<>"", A4:A, ))
or something more compact like:
=ARRAYFORMULA({SORT(IF(B4:B<>"", A4:A, )),
SORT(IF(C4:C<>"", A4:A, )),
SORT(IF(D4:D<>"", A4:A, ))})

Tracking Volunteer Hours Using Google Sheets

I'm trying to find an efficient way to keep track of volunteer hours for each member of a high school volunteer club using Google Sheets. Right now, I have four sheets, one for members of each grade. On the horizontal axis, I list every event and how many hours they volunteer for (or don't volunteer). However, it takes up a lot of columns and I end up having to continually add columns which is a pain, especially when passing the document on for the next "generation" of club officers.
I was thinking of having one sheet for all the members and another for all the events with names and hours of each person who volunteered. The only problem is, I want the main sheet to be able to search through the event sheet for a certain name and then add the hours that correspond to that found name to the total hours on the main sheet.
Is it even possible to search through a different sheet and return a value other than the index? To return a value in a cell next to that of the name?
There are many ways to do this. For a one function solution use QUERY.

Resources