I have set up a Sheets file to have a list of the personnel of a company. Each line corresponds to a person and each column to a data of this same person. There is the date of entry in the company, the name of the person, his first name, his department, ...
I am trying to set up indicators and one of them is a problem. I would like to have the list of departments for people who joined the company on a given date (link). Thanks to the formula in F2 in the previous file, I can obtain the value of line 2 but I would like to have all the values at once without having to apply my formula to each line.
Try this out
=filter(D2:D;A2:A=today())
Related
I am collecting data on intervals and want to display a summary of that data on a single line in a new sheet.
https://docs.google.com/spreadsheets/d/1EOV4-VwVfwWvhwQ24qkQbCRGxUp74oe0dLWrbj0wiNE/edit#gid=566541214
Grade Data Sheet
Each batch of data comes in by date with a Name, Course and Grade like below
Raw data is like this for a large number of Name / Course / Grade:
Date
Name
Course
Grade
10/1/2022
Joe
Math
65-D
10/15/2022
Joe
Math
58-F
10/30/2022
Joe
Math
50-F
Summary Sheet
Single line that takes each unique Name-Course pair and I'm attempting to lookup a grade for each date column.
(note: I'm trying to extract the dates in the columns dynamically as the Grade Data sheet expands)
So I've successfully extracted the Dates to create new columns, and I am trying to create an index-match that grabs the column date and creates an array of DATE-NAME-COURSE and matches DATE-NAME-COURSE on the Grade Data sheet to return the grade for that student on the Date. The formula works for the first row, but when it fills down it returns the value of the first match.
I can't quite figure out how to reference the single date cell into the array while dynamically filling down. Not sure if I a different approach, but hopefully this makes sense.
=arrayformula(if(len($A2:$A),(index(GradeData!$D2:$D,match(TEXT(C$1,"yyyy-mm-dd")&$A2:$A&$B2:$B,TEXT(GradeData!$A2:$A,"yyyy-mm-dd")&GradeData!$B2:$B&GradeData!$C2:$C,0))),""))`
The goal is to have Grade Data populate automatically, and the Summary page to add a column for each new date and fill data down for each student.
Thanks in advance, I have shared the actual sheet above so you can see the data
I've attempted several different ways but can't quite get the dynamic array matches with the date formatting to work.
=arrayformula(if(len($A2:$A),(index(GradeData!$D2:$D,match(TEXT(C$1,"yyyy-mm-dd")&$A2:$A&$B2:$B,TEXT(GradeData!$A2:$A,"yyyy-mm-dd")&GradeData!$B2:$B&GradeData!$C2:$C,0))),""))
Thank you!
As far as I've seen the issue in your sheet is that the dates of the header do not match the dates of your source data. I've added a new header line:
=LAMBDA(dates,FILTER(dates,regexmatch(dates,"/")))(Transpose(Unique(arrayformula(left(GradeDataVlookup!A4:A,10)))))
And just put an IFERROR in order to avoid all the errors of the values without matches:
=arrayformula(if(len($A$2:$A),iferror(vlookup(TEXT(C$1,"MM/DD/YYYY")&$A2:$A&$B2:$B,GradeDataVlookup!$A:$E,5,FALSE),""),""))
PS: with MAP or MAKEARRAY you could summarize all the table in just one formula
So I'm making a dependent dropdown column in Google Sheets that has a bunch of different things of a type. I've named the ranges I want to use and I've got column A with those names in the dropdown. The problem is, I can't use the contents of column A to reference in column B's data verification.
E.g. I select Tech in column A, column B reads that as "Tech" when I want it to be able to reference the named range Tech. How to you convert from the string "Tech" to the named range Tech? Is there a way without using a stupidly long nested IF on every single row of B column's data verification?
Thanks in advance :)
I'd like to query a couple of tables to come up with a total sum of the value of a set of items, but with the price being dependent on data in another cell range, then grouping it based on category.
For example, say I have a data table containing name, category, and price of some grocery items. Another table I store my current inventory of groceries. I would like to calculate the value of, say, all my fruit.
Here is an editable example:
https://docs.google.com/spreadsheets/d/1y2fLgwrsMr-dWojy3uYZ1Qs2U01AP3RlT_PI2txwZRE/edit?usp=sharing
Not sure the best way to approach this?
Thanks for any guidance!
Solution
Use VLOOKUP for searching the right item of your inventory and then multiply it with the value of the product you made the search with. For more info about VLOOKUP check this documentation.
=VLOOKUP(E3,$A$3:$C$11,3,FALSE)*F3
With these values, create a column next to Quantity indicating the total price for each product (as show in the picture below). Then, create another column with the Type of each item performing a similar VLOOKUP formula:
=VLOOKUP(E3,$A$3:$C$11,2,FALSE)
Finally, use these two columns as input ranges to apply a SUMIF formula for adding up the items of each group:
=SUMIF(H3:H6,"Fruit",G3:G6)
For more info about SUMIF check this documentation.
I hope this has helped you. Let me know if you need anything else or if you did not understood something. :)
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.
I have a problem with Spreadsheets. In one of my sheets, I have two tables. The first contains the employee ID and the total hours; and the second has for each employee, his/her name and ID. Example:
!
I am trying to figure out a formula to look through the second table and if it sees a certain employee ID then it will assign that employee ID with the person's name. I would like to keep the column that lists the employee ID but to have a formula that places the person’s name near to his/her ID. The problem is that I do not know how to stick such information. For instance, in D4 should appear "Ben Hale" because the employee ID of E4 matches with the ID that appears in E25.
The expected output is in red (except the value of E18). I want to obtain such output using formulas.
Please try:
=index(F$22:F$37,match(E3,$E$22:$E$37,0))
copied down to suit.
In addition to the valuable contribution of pnuts, you could also use enter the following in D4:
=ArrayFormula(vlookup(E3:E17, E22:F37, 2,0))