Google Sheets- Tally unchecked boxes across multiple sheets - google-sheets

I humbly seek your help.
I'm working on tabulating a bit o' data for a project at my school.
Spreadsheet Info
I have a spreadsheet where teachers have to click their name (which is linked to their own sheet). This brings the teachers to a sheet that contains the roster of their homeroom students. The teachers need to tick a box in columns B, C, and D to indicate if the students brought their charged chromebook, their charger, and their sleeve. They left the box unticked if the student did not complete this task. This spreadsheet contains 70 teacher's names and 1800 student names.
What I'm seeking help with
The teachers have completed their task- and I'm trying to tabulate the # of unchecked boxes for each column (B,C,D) per teacher (or, per sheet). I know how to sum the unchecked boxes. What I need help with is trying to find a way to apply a formula across 70 sheets w/ unique names (without manually typing each unique name in a formula). My limited formula knowledge results in being unable to copy down (or across) formulas when the sheet name is referenced via link in a column.
Simplified Example Sheet:
I have a simplified example linked below.
https://docs.google.com/spreadsheets/d/14MyEFUwm-QmdTf7oxrnJPnoZJEGyS32fAqmttalraCI/edit?usp=sharing
Thank you in advance, I appreciate the recommendations
I attempted the =sum(indirect) formula, but was unable to get that to work

try this formula in your sheet:
=MAKEARRAY(COUNTA(A2:A),3,LAMBDA(r,c,COUNTIF(INDIRECT(INDEX(A2:A,r)&INDEX({"!B:B","!C:C","!D:D"},c)),FALSE)))

You were probably right with COUNTIF and Indirect. Possibly you struggled with single apostrophes for the name of sheets with spaces. You can try this in B2:
=MAKEARRAY(COUNTA(A2:A),3,LAMBDA(r,c,COUNTIF(INDEX(INDIRECT("'"&INDEX(A2:A,r)&"'!B2:D"),,c),FALSE)))

Related

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?)

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 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,""))})

SUMIFS function across multiple sheets

For reference, please visit this Google Doc which is a simplified example of my problem, which is to determine total sales in Blue and Green markets each month.
Each month, I receive a new sales report from accounting for all of our markets and I add the sheet to the main workbook. My team is in charge of assigning "colors" to the markets and tracking this. As it's privileged information, we can't have accounting auto-tag these in the data they send over.
One solution would be, for each new monthly report that comes in, tag each city with the color. However, we have hundreds of markets and this isn't very practical to go through each time.
I assume that a SUMIFS function would work here, but am unsure how to set it up when there are values spread across multiple sheets.
You can use this function in B8 of February tab:
=SUM(IF(COUNTIFS($A$2:$A$5,Color!$A$2:$A$5,Color!$B$2:$B$5,'Sales February'!A8)>0,$B$2:$B$5,0))
COUNTIFS($A$2:$A$5,Color!$A$2:$A$5,Color!$B$2:$B$5,'Sales February'!A8)>0 gets an array of the countries that belong to the colour specified in A8 of the current tab (Would that be possible to put only Green and remove February Sales from that cell?).
If the country belongs to the particular colour, then return the array of corresponding values in column $B$2:$B$5.
Lastly, sum this array.
Note:
You need to array enter this formula in Excel (by holding Ctrl+Shift then hit Enter after typing in the formula).
In Google Spreadsheets, you array enter a formula by wrapping the formula around =ArrayFormula(), meaning you use:
=ArrayFormula(SUM(IF(COUNTIFS($A$2:$A$5,Color!$A$2:$A$5,Color!$B$2:$B$5,'Sales February'!A8)>0,$B$2:$B$5,0)))
In Excel you can use this "array formula"
=SUM(SUMIF(A$2:A$5,IF(Color!B$2:B$5=A8,Color!A$2:A$5),B$2:B$5))
confirmed with CTRL+SHIFT+ENTER
The same formula works in google docs if wrapped in arrayformula, i.e.
=arrayformula(SUM(SUMIF(A$2:A$5,IF(Color!B$2:B$5=A8,Color!A$2:A$5),B$2:B$5)))
or you can use FILTER as user3465711 suggests, i.e.
=SUM(filter(B$2:B$5,isnumber(match(A$2:A$5,IF(Color!B$2:B$5=A8,Color!A$2:A$5),0))))

Creating a new Google Spreadsheet based on results in two sources

Using the "importHTML" function, I've scraped two tables from the web, containing results from weekly 5k races. These two tables now exist as two sheets within a Google Spreadsheets document, each of which are titled "19/11/11" and "12/11/11".
These sheets contain several columns, the most important of which are NAME and GRADE (a percentage value that "scores" your time based on your age.
For example:
Max LANCASTER
81.83%
Craig MITCHELL
76.58%
Andy MCGHEE
73.16%
I'd like to be able to create a new sheet with data that looks at this week's results (19/11/11) and compares it to last weeks (12/11/11). If the runner did not compete the previous week, then they are ignored, but if they did, their NAME and GRADE (for both weeks) is shown. This would allow me to sort on GRADE, and find who was the most improved runner.
Can any Google Spreadsheet experts help me figure this one out?
Thanks
Ronnie
There's most likely better ways of doing this than what I'll suggest, but since no experts answered you... here I go!
I'll suppose NAME is on column A and GRADE on B.
In a new "compare" sheet, with the following header:
NAME - GRADE A - GRADE B - DIFF
I'd add these formulas on row 2.
A2: =Filter('19/11/11'!A2:B;Match('19/11/11'!A2:A;'12/11/11'!A:A;0))
C2: =ArrayFormula(Transpose(Split(Concatenate(If(A2:A=Transpose('12/11/11'!A2:A);Transpose('12/11/11'!B2:B);"")&If(Transpose(Row('12/11/11'!A2:A))=Rows('12/11/11'!A2:A)+1;Char(9);""));Char(9))))
D2: =ArrayFormula(FILTER(B2:B-C2:C;A2:A<>""))
And if I'd like the sorted result (as you mentioned), I'd do this:
F1: =Sort(A:D;4;false)

Resources