what am i supposed to do in this situation? - database

so recently my principal is having me create a database for a tardy system recently what i've done is set up a google form where the student id can be enter through a num pad and put into a google sheet where ive setup 2 sheets one where it shows the student name and how many tardies they have and then the other is the google form responses, each tardies cell in the other sheet has the formula: =COUNTIF('Form Responses'!B:B,"") which essentialy checks the number of times a certain student id pops up, by ferpa i am not legally allowed access to the student id's is there any possible way i can maked it when a person enters their student id it adds/creates a new formula for the tardies cells to check through the entire list without a duplication or error code?
i have tried the =COUNTIF('Form Responses'!B:B,"") formula but that would make where my principal would have to edit a thousand lines of formula

Depending on the exact setup of your sheets, you can use a formula like this, guessing that the students' IDs are in A column:
=BYROW(A2:A,LAMBDA(each,IF(each="","",COUNTIF('Form Responses'!B:B,each))))
That would set a formula will drag all the column automatically.
Or, instead of having a list of IDs you can set a QUERY that will find all the ID values in the responses and their count:
=QUERY('Form Responses'!B:B,"SELECT B,Count(B) where B is not null group by B")

Related

Excel Loop VBA to change cell value one master sheet

really need help on this. probably simple but im a novice so not so easy.
I have a work sheet, we'll call it masterdata. I gather my data form business 365 and paste multiple lines of data into the masterdata sheet. The lines basically consist of a PO number, a sales number, a part number, quantity and customer line number.
I use this data to generate QRCodes in a template on my first sheet named template. The QRcodes are generated by google then brought onto the sheet. (doesnt have to be google but i havent worked out how to get excel to do this without third party addons)
I have a macro split my data into individual sheets based on the PO number, each sheet could end up with 1 - 100 lines of sales data, each one referring to a separate PO number.
On my QRcode template sheet im using an indirect vlookup function to pull the data from each sheet based on the value entered into cell F2.
Can anyone help me automate this a bit as it can be quite time consuming entering the sheet number into F2, deleting the previous results QRCodes and refreshing the QRcodes then printing.
I'd like to auto cycle F2 with the names of each sheet one at a time, delete all QRCodes then refresh/download new QRcodes and print the page.
Is this even possible?
Thank you all in advance for taking the time to review my question.

How to collect all responses under one column in google sheets

I have a form that asks for the team leader name 5 times for 5 departments I need to make an array to collect all the answers under one column.
I tried this formula
=ARRAYFORMULA(IF(ROW(A:A)=1,"Team Leader#",IF(LEN(A:A)=0,IFERROR(1/0),IFS(AND(ISBLANK(B:B),ISBLANK(C:C),ISBLANK(D:D),ISBLANK(E:E)),F:F,
AND(ISBLANK(F:F),ISBLANK(C:C),ISBLANK(D:D),ISBLANK(E:E)),B:B,
AND(ISBLANK(B:B),ISBLANK(F:F),ISBLANK(D:D),ISBLANK(E:E)),C:C,
AND(ISBLANK(F:F),ISBLANK(C:C),ISBLANK(B:B),ISBLANK(E:E)),D:D,
AND(ISBLANK(F:F),ISBLANK(C:C),ISBLANK(B:B),ISBLANK(D:D)),E:E))))
But it returns Error no match
Here is a sample of the Data
collect all responses under one column in google sheets
={"Team Leader#";
ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(B2:F),,999^99))))}

Can you create dynamic formulas in Google Sheets?

So I'm just starting out creating a portfolio tracker within Google Sheets. I'm using the Google Finance methods to get the stocks name and all the relevant data that I need. The only issue is that I can't figure out how to populate the specific data I need without having to manually type out the same formula's for each stock I want data for.
For example... Each row in the first column would contain the ticker symbol for that specific stock. If I bought a new stock, I would just type in the ticker symbol in cell A1 and this would populate the necessary fields such as price and so on. If I bought another stock I would essentially do the same thing but now in A2.
I know that you can get the price of a stock by doing
=GOOGLEFINANCE(A1, "price")
but is there any way to make it dynamic? something like:
=GOOGLEFINANCE(A(Row(ref)), "price")?
Any suggestions would be helpful. Maybe there's even an addon that makes this process simpler, but I'm not sure.
try:
=ARRAYFORMULA(IFERROR(GOOGLEFINANCE(A1:A10, "price")))
You just have to write the function for A1:
=GOOGLEFINANCE(A1, "price")
And then drag the little square on the cell down. It will automatically pick up the correspondant number of the row in the A column.
You can set-up your sheet to have like 100 rows used, and when you add the ticker it will automatically calculate it.
If you don't want th #N/A to show you can do it like:
=IFERROR(GOOGLEFINANCE(A1, "price"))

Using Vlookup inside array formula in Sheets

I have two sheets with relevant columns:
Confirmed Cards
a. Email
b. Credits
Purchase Credits.
a. Email
b. Rolling Total Credits
I'm hoping to populate "Credits" inside of "Confirmed Cards" with "Rolling Total Credits" from "Purchase Credits" by cross-referencing emails to show how many credits a user has.
I'm hoping to do this within an Array Formula, so as users are added to my database within confirmed cards, the amount of credits they own are automatically updated.
This is what I am currently using within "Confirmed Cards" to try to pull in the amount of credits the user has:
=ArrayFormula(VLOOKUP(A2:A,'Purchase Credits'!A2:F,5))
The formula correctly inputs the correct amount of credits for A2, the first user email, however, it inputs this value into every single row, regardless of email. For example, if alex#gmail.com has 100 credits, this amount shows for every single row within "Credits."
you will need 4th vlookup parameter. try:
=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A, 'Purchase Credits'!A2:F, 5, 0)))

Excel code to return specific values from another worksheet

I have an excel file that lists multiple students and courses they've taken and when they were taken. The worksheet is set up so that the students are listed in rows and the courses are in columns along with the dates. I created a calendar on a separate worksheet to show a snapshot view of the students and their courses taken. I am struggling with how to feed the data into the Calendar. Basically, the logic is that I need to search through (or loop through) an array of non-adjacent cells named StatusArray and if there is a value present then I need it to return the student ID and the associated Course name. The kicker is that there are sometimes multiple courses per student so I need to make sure it returns all of them, each on a new line. And the status columns all have formulas in them because they are generated based on the dates entered.
Example:
Worksheet 1 columns - Student ID, name, address, course status, start date, end date, grade, course status, start date, end date, grade, ......
I need it to read through the course status columns and (when not blank) return the status header for the status column in J and the student ID in column C of the Calendar worksheet. Bonus if it returns Name, Address, Phone, and comments as well!
I am completely stuck as to how to do this!
A brute-force approach: Let's assume you have 4 repeating blocks of "status/start/end/grade" information. I understand 4 course blocks is the most any student has, but some students have data populated in three or fewer blocks.
First, copy only the region of data that has student ID, name & address. Paste it immediately below the existing list of students. Repeat until you have a total of 4 sets of student information. The first set is your original, then 3 redundant copies below.
Next, cut the right-most (4th) block of status/etc. information, and paste it next to the 1st repeated section of students. Make sure you align the pasted status column with the first block's status column. Repeat this exercise two more times, cutting out the rightmost block of status etc. and pasting next to the next section of redundant student information.
You should now have a table with only 7 columns of data: the first three are student ID, name & address, same as before. The next four columns are course status, start, end & grade. Now, you should be able to simply filter the "status" column for what you're looking for.
P.s. I don't usually recommend brute-force, but in this case it's impossible to code something more elegant without a lot more specifics about your layout. This solution should be quick and easy assuming you don't have a ton of data to manipulate and assuming you don't need to do this very often.

Resources