Cellwise Try it free

Excel for your field

Excel for coaches and sports teams

For volunteer coaches, team managers and league organizers who end up keeping the spreadsheet. Excel turns a season of box scores into per-game averages, shows whether playing time is fair, lists who still owes dues and builds league standings that update as scores come in. The examples use a 10-player youth basketball team after ten games; the same formulas work for soccer, softball, volleyball or hockey.

Sample data

Every result on this page comes from this sheet, calculated by the same engine the Cellwise app uses. Change a number and watch the formulas react.

ABCDEFGHIJK
1PlayerPositionGamesMinutesPointsReboundsAssistsDues paidSeason dues120
2MayaGuard102121183142120Team games10
3JordanForward10198965814120
4AvaGuard917674223560
5LeoCenter1018588779120
6SamForward81204034110
7PriyaGuard10160521827120
8EliCenter79630415120
9NoahForward913248291360
10ZoeGuard10150612024120
11KaiForward671181560

What Excel does for coaches and sports teams

Points per game that are fair to players who missed games

Season totals reward the kids who showed up most. Dividing by the games each player actually played puts everyone on the same footing: a player who scored 74 in 9 games is ahead of one who scored 61 in 10.

Round to one decimal, which is how stats are usually shown. If a player has not played yet, wrap it as =IF(C2=0,0,ROUND(E2/C2,1)) so the sheet shows 0 instead of #DIV/0!.

=ROUND(E2/C2,1)

Result: 11.8

11.8 points per game for Maya: 118 points over 10 games.

See who is getting less than an average share of minutes

Most youth leagues expect roughly equal playing time, and parents notice when it is not. The fairest comparison is minutes per game played, because a player who missed games has fewer total minutes for a good reason.

D2:D11/C2:C11 works out minutes per game for every player at once, SUM(D2:D11)/SUM(C2:C11) is the team's average minutes per player per game, and FILTER keeps the names below it. TEXTJOIN puts them in one cell. FILTER and TEXTJOIN need Excel 365 or 2021.

=TEXTJOIN(", ",TRUE,FILTER(A2:A11,D2:D11/C2:C11<SUM(D2:D11)/SUM(C2:C11)))

Result: Sam, Priya, Eli, Noah, Zoe, Kai

Sam, Priya, Eli, Noah, Zoe, Kai: each averages under the team's 16.9 minutes a game. Being under the average is normal for half a roster; the real question is how far under, which the next formula answers.

Measure the playing-time gap

The spread between the most and fewest minutes per game is one number you can track through the season. If it grows, playing time is drifting toward your starters.

MAX and MIN accept the per-game calculation directly, so you do not need a helper column. In older Excel versions, add a Minutes per game column (=D2/C2) and take MAX minus MIN of that column.

=MAX(D2:D11/C2:C11)-MIN(D2:D11/C2:C11)

Result: 9.3666666667 shows as 9.4 with Number format

About 9.4 minutes: Maya averages 21.2 minutes a game and Kai 11.8.

List who still owes dues, and how much is outstanding

Collecting money is the least fun part of team admin. With the season fee in K1 and what each family has paid in column H, FILTER lists everyone below the fee.

For the total still owed, multiply the fee by the number of players and subtract what has come in: =K1*COUNTA(A2:A11)-SUM(H2:H11), which gives $360 here. If some players pay a reduced fee, add a Fee column and use =SUM(fee column)-SUM(H2:H11) instead.

=TEXTJOIN(", ",TRUE,FILTER(A2:A11,H2:H11<K1))

Result: Ava, Sam, Noah, Kai

Ava, Sam, Noah, Kai have not paid the full $120. Ava and Noah paid half; Sam and Kai have paid nothing yet.

Find the team leader in any category

MAX finds the top number, MATCH finds which row it is in and INDEX returns the name from that row. Point it at a different column for points, rebounds or assists.

If two players tie, MATCH returns the first one in the list. To show every player tied for the lead, use =TEXTJOIN(", ",TRUE,FILTER(A2:A11,F2:F11=MAX(F2:F11))).

=INDEX(A2:A11,MATCH(MAX(F2:F11),F2:F11,0))

Result: Leo

Leo leads the team with 77 rebounds.

Name your top three scorers

LARGE(E2:E11,3) is the third-highest season total. Keeping everyone at or above it gives the top three, in roster order.

A tie for third place brings in an extra name, which is usually what you want for an awards list. For a ranked list instead, use =SORT(FILTER(A2:E11,E2:E11>=LARGE(E2:E11,3)),5,-1) and keep the name column.

=TEXTJOIN(", ",TRUE,FILTER(A2:A11,E2:E11>=LARGE(E2:E11,3)))

Result: Maya, Jordan, Leo

Maya, Jordan, Leo: 118, 96 and 88 points.

Count who has played every game

Attendance awards and "who needs a check-in" lists both start with this. With the number of team games in K2, COUNTIF counts the players whose Games column matches it.

Flip it to =COUNTIF(C2:C11,"<"&K2) to count players who missed at least one game.

=COUNTIF(C2:C11,K2)

Result: 5

5 players have played all 10 games: Maya, Jordan, Leo, Priya and Zoe.

Practice: 8 exercises

Use the sample data above. Type a formula and press Check: it is graded by a real spreadsheet engine, the way Cellwise grades lessons.

  1. 1How many points has the whole team scored this season?

    Show answer

    =SUM(E2:E11) = 625. The ten players have scored 625 points between them.

  2. 2How many points per game does Jordan (row 3) average? Round to 1 decimal.

    Show answer

    =ROUND(E3/C3,1) = 9.6. 96 points over 10 games is 9.6.

  3. 3How many points have the guards scored in total?

    Show answer

    =SUMIF(B2:B11,"Guard",E2:E11) = 305. Maya, Ava, Priya and Zoe have 305 points between them.

  4. 4How many players have not paid the full season dues in K1?

    Show answer

    =COUNTIF(H2:H11,"<"&K1) = 4. Four players have paid less than $120.

  5. 5What is the average number of rebounds for the centers? Round to 1 decimal.

    Show answer

    =ROUND(AVERAGEIF(B2:B11,"Center",F2:F11),1) = 59. Leo has 77 and Eli 41, which average 59.

  6. 6Who has the most assists? Return the name.

    Show answer

    =INDEX(A2:A11,MATCH(MAX(G2:G11),G2:G11,0)) = Maya. Maya leads with 42 assists.

  7. 7How many dollars of dues are still outstanding in total?

    Show answer

    =K1*COUNTA(A2:A11)-SUM(H2:H11) = 360. $1,200 due from ten players minus $840 paid leaves $360.

  8. 8How many players have played at least 8 of the team games and still owe dues?

    Show answer

    =COUNTIFS(C2:C11,">=8",H2:H11,"<"&K1) = 3. Ava, Sam and Noah have played 8 or more games and still owe money.

Free templates for coaches and sports teams

Guided project: Soccer season report

Turn a youth soccer season into goal contributions, a scoring rate per full game and an awards list.

6 steps in the Cellwise app. Each step checks your formula in a real grid, with hints when you get stuck. Part of Cellwise Plus.

Open guided projects

Guides for these formulas

FAQ

How do I keep team stats in Excel?

One row per player with games played and a column for each stat as a season total. Per-game averages are each total divided by that player's games, =ROUND(E2/C2,1), and INDEX/MATCH with MAX finds the leader in each column.

How do I make sure playing time is fair?

Log minutes per game for each player and compare minutes per game played, not season totals, so absences do not count against anyone. A fair share is game length times players on the field divided by roster size; flag anyone well below it.

How do I track who has paid team fees in Excel?

Put the fee in one cell and what each family has paid in a column. =FILTER(names, paid<fee) lists who still owes, and =fee*COUNTA(names)-SUM(paid) gives the total outstanding.

Can Excel make league standings automatically?

Yes. List every game with both scores, then count wins, draws and losses per team with SUMPRODUCT, add goals with SUMIF and rank with COUNTIF and COUNTIFS for tiebreakers. The league standings template on this page does it for you.

Excel for other fields

Updated