Cellwise Try it free

Free Excel template

Free student group maker template

For teachers, coaches, camp leaders and workshop facilitators who want mixed-ability groups or fair teams without shuffling name cards. Paste your list with a score (a test result, a skill rating or a reading level), choose the number of groups, and the template ranks everyone and deals them into groups with a snake draft so each group gets a similar spread of strong and developing students.

cellwise-student-group-maker-template.xlsxExcel workbook · 5.5 KB · works in Excel, Google Sheets, Numbers and LibreOffice · no signup
Download free template

Preview and try it

This is the template's sheet, calculated by the same engine as the Cellwise app. Change any number to see the formulas react before you download.

ABCDEFGHI
1Balanced student group maker
2Number of groups6
3Students listed24
4Group size4
5No.StudentScoreRankGroupGroupStudentsAvg score
61Aaliyah Brown88661476.5
72Ben Ortiz721642476.5
83Carla Diaz95113476.5
94Dylan Moore642054477.3
105Esme Clarke811035477
116Felix Wong771316477.5
127Gia Romano91447
138Hugo Patel582328
149Isla Murphy8485
1510Jamal Reed69186Class average76.9
1611Kenji Sato9322Highest group avg77.5
1712Lena Fischer75142Lowest group avg76.5
1813Mason Hall62214Spread1
1914Nina Kaur8676
2015Oscar Lindqvist79121Find a studentNina Kaur

How the formulas work

Rank every student, with ties broken

D6=IF(B6="","",COUNTIF($C$6:$C$29,">"&C6)+COUNTIF($C$6:C6,C6))

The first COUNTIF counts how many students scored higher, which gives the rank. The second counts how many times this score has appeared so far, from the top of the list down to this row (note the range that only locks its start, $C$6:C6). That adds 1 for the first student with a score, 2 for the second, and so on, so tied students get different ranks and nobody is skipped. Isla Murphy and Willa James both scored 84 and get ranks 8 and 9.

Deal students into groups with a snake draft

E6=IF(D6="","",IF(MOD(INT((D6-1)/$B$2),2)=0,MOD(D6-1,$B$2)+1,$B$2-MOD(D6-1,$B$2)))

Think of dealing cards: with 6 groups, ranks 1 to 6 go to groups 1 to 6, then ranks 7 to 12 go back the other way, 6 to 1, and so on. INT((rank-1)/groups) is the round number; MOD(round,2) tells odd rounds from even ones; MOD(rank-1,groups) is the position inside the round. Snaking stops group 1 from always getting the strongest student of every round.

Check the groups are balanced

I6=IF(G6>$B$2,"",ROUND(AVERAGEIF($E$6:$E$29,G6,$C$6:$C$29),1))

AVERAGEIF averages the scores of students whose group number matches G6. Rows for group numbers higher than B2 stay blank, so the table works for 2 to 8 groups. I18 shows the spread between the strongest and weakest group average; with the sample class it is under 2 points.

Look up which group a student is in

I21=IFERROR(INDEX($E$6:$E$29,MATCH(H20,$B$6:$B$29,0)),"Not found")

Type a name in H20. MATCH finds that student's row (0 means exact match) and INDEX returns the group from the same row. IFERROR shows Not found for a misspelled name instead of #N/A.

Make it yours

FAQ

How do I split a list into groups in Excel?

For simple groups in list order, number each row and use =MOD(row_number-1,groups)+1. For balanced groups, rank by score first and use a snake order, as this template does, so each group gets a similar mix.

How do I rank with ties in Excel without skipping numbers?

Add a running COUNTIF to the rank: =COUNTIF(all,">"&C6)+COUNTIF($C$6:C6,C6). Tied values get consecutive ranks in list order, so every rank from 1 to the number of students is used exactly once.

What if the class does not divide evenly?

The last round of the draft is only partly filled, so groups differ by at most one person, and B4 shows the sizes you will get. The groups that are one short miss a lower-ranked student, so their average can sit a few points higher; check the spread in I18 and move one student by hand if it matters.

Functions used

Related guides

More free templates

Updated