I am a high school teacher in need of help with a student sorting problem.
- Every 6 weeks students receive 100 "tokens" to bid on ~30 different projects.
- They bid via a Google Form that asks them to "spend" their tokens based on interest.
- This results in a Google Sheet that has 30 columns (1 for each project) and 373 rows (one for each student.)
I need to automate sorting of this sheet such that I end up with a new sheet that has the students who are assigned to each project.
Goals:
- The maximum amount of students get placed in their top "bid" projects.
- There are no more than 25 students in any project.
- The students who are classified as "level 1" are only assigned to 1 project, but the students who are classified as "level 2" are on the rosters of 2 projects. This level is connected to the e-mail that submits with the form.
- Any student who bids over the max 100 tokens gets randomly assigned to an open spot in a project.
- Projects rosters are evenly divided into 5 "hours" that have no student conflicts. E.g. if the "Science Project" and "Math Project" rosters have no students who are the same, they can be at the same time. If they do have students who are the same, they will be at different times.
- In the instance of a conflict, students are assigned their next highest bid. In the instance of a conflict where there is no next highest bid, students are assigned a random project that has a spot.
- Example 1: 26 students bid 100 tokens on a project. 1 of the 26 is placed in a random project.
- Example 2: 24 students bid 100 tokens on a project. 5 students bid 99 tokens on that same project. 4 of the 5 are assigned to the project that they bid 1 token on, if that's enough for them to "qualify." If not, they are randomly assigned to other projects.
I can sort this manually using various Google Sheets equations, but it takes me about 3 hours. I was given a quote for building a tool for automating this, but it's quite a bit out of my price range. A friend recommended that I post here. Anyone want to take it on? Not asking for a handout. I'd also be able to share a Google Sheet with example data.
EDIT: Here is a link to the process I use with student information removed. One challenge is that as I removed the student information I filled it in with "student1" etc. BUT "student1" is not the same student throughout each of the sheets, so it becomes a bit hard to track. Here is a screencast that explains my process. Let me know as you have question or ideas!